假设我们有这种情况:
数据库中的表:
Country (id, country_name),Person (id, login),CountryManager (id_country, id_person),CountryStakeholder (id_country, id_person)
如果我们必须使用 Entity Framework Database-First 从数据库创建模型,在 VS 中我们将有一个像这样的类:
class Country {
int id;
string country_name;
virtual ICollection<Person> Person1; // Navigation Properties
virtual ICollection<Person> Person2; // ---------||----------
}
我已经大大简化了代码,但希望您明白了。
似乎当 Entity Framework 处理外键时,它会创建通用导航属性。是否有可能控制如何按名称创建导航属性?不幸的是,Person1, Person2 不是很好解释。
最佳答案
在 VS 中,您可以使用 GUI 执行此操作。
如果您显示模型浏览器,则向下导航至:
YourEntityModel > 实体类型 > 国家
然后右键单击“Person1”导航属性并选择“属性”,然后您可以将导航属性名称更改为您喜欢的任何名称:
只需更改名称、保存更改并完成...
(实际上有很多方法可以进入 Navigation Property 属性窗口 - 您也可以在模型图中右键单击它)
关于c# - Entity Framework (数据库优先)对同一表命名约定控制的多重关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26757860/