Załóżmy, że mamy taką sytuację:Entity Framework (bazy danych-First) wielokrotne stosunki do konwencji nazewnictwa sama tabela sterująca
tabel w bazie danych:
Country (id, country_name), Person (id, login), CountryManager (id_country, id_person), CountryStakeholder (id_country, id_person)
Gdybyśmy mieli stworzyć model z bazy danych, przy użyciu Entity Framework Database na pierwszej kondygnacji, w VS musielibyśmy klasę jak tym:
class Country {
int id;
string country_name;
virtual ICollection<Person> Person1; // Navigation Properties
virtual ICollection<Person> Person2; // ---------||----------
}
Uprościliśmy kod, ale mam nadzieję, że masz rację.
Wydaje się, że gdy Entity Framework obsługuje klucze obce, tworzy ogólne właściwości nawigacji. Czy istnieje możliwość kontrolowania sposobu tworzenia właściwości nawigacji według nazwy? Person1, Person2 niestety nie jest zbyt wyjaśniający.
Osobiście wolę korzystać z metodologii Database-First. I odniosłem wiele sukcesów z jego używania. Jednak wymuszam ścisłą konwencję nazewnictwa w moich bazach danych. Mam skrypt narzędziowy, który przeszukuje bazę danych i zmienia nazwę moich kluczy obcych, aby pasowały do mojej konwencji nazewnictwa. Zanim FK dojdą do EDMX, ich nazwy rzeczywiście mają sens. W związku z tym EDMX ma sens, a T4 są w stanie wygenerować kod, który ma sens. –
Czy możesz udostępnić skrypt? Myślę, że byłaby to najbliższa opcja rozwiązania: –
@AdrianK. Czy znalazłeś rozwiązanie tego problemu? – Lijo