讓我們假設我們有這樣的情況:實體框架(數據庫優先)多重關係到同一個表的命名約定控件
表在數據庫:
Country (id, country_name), Person (id, login), CountryManager (id_country, id_person), CountryStakeholder (id_country, id_person)
如果我們必須創建模型從數據庫中,使用實體框架數據庫,首先,在VS我們就會有一個類像這樣:
class Country {
int id;
string country_name;
virtual ICollection<Person> Person1; // Navigation Properties
virtual ICollection<Person> Person2; // ---------||----------
}
我簡化了許多代碼,但希望你明白了。
似乎當實體框架處理外鍵時,它會創建通用的導航屬性。有沒有可能控制如何通過名稱創建導航屬性?不幸的是,Person1,Person2並不是很有說服力。
個人而言,我更喜歡使用數據庫優先方法。而且,我使用它取得了很多成功。但是,我在我的數據庫中執行嚴格的命名約定。我有一個實用程序腳本,它將篡改數據庫並重命名我的外鍵以符合我的命名約定。 FKs到達EDMX時,他們的名字實際上是有意義的。因此,EDMX是有道理的,而T4則可以生成有意義的代碼。 – 2016-02-24 02:30:37
你能分享腳本嗎?我認爲這將是解決方案 – 2016-02-26 01:01:42
@AdrianK最接近的選擇。你有沒有找到解決方案? – Lijo 2017-06-07 23:02:07