Давайте предположим, что мы имеем такую ситуацию:Entity Framework (базы данных-первых) несколько отношений к соглашениям об именовании же управляющей таблицей
Таблицы в базе:
Country (id, country_name), Person (id, login), CountryManager (id_country, id_person), CountryStakeholder (id_country, id_person)
Если мы должны были создать модель из базы данных, с помощью Entity Framework Database-первых, в VS мы имеем класс как это:
class Country {
int id;
string country_name;
virtual ICollection<Person> Person1; // Navigation Properties
virtual ICollection<Person> Person2; // ---------||----------
}
Я упростил код, но, надеюсь, вы поняли.
Похоже, что когда Entity Framework имеет дело с внешними ключами, он создает общие свойства навигации. Есть ли возможность управлять созданием свойств навигации по имени? Person1, Person2 не очень объяснительный, к сожалению.
Лично я предпочитаю использовать методологию Database-First. И у меня был большой успех, используя его. Однако я применяю строгое соглашение об именах в своих базах данных. У меня есть скрипт утилиты, который будет пульсировать через базу данных и переименовывать мои внешние ключи в соответствии с моим соглашением об именах. К тому времени, как FK попадают в EDMX, их имена действительно имеют смысл. Поэтому EDMX имеет смысл, и T4 получают код, который имеет смысл. –
Не могли бы вы поделиться сценарием? Я думаю, что это был бы самый близкий вариант решения –
@AdrianK. Вы нашли решение для этого? – Lijo