c# - Entity Framework (数据库优先)对同一表命名约定控制的多重关系

标签 c# entity-framework naming-conventions foreign-key-relationship navigation-properties

假设我们有这种情况:

数据库中的表:

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”导航属性并选择“属性”,然后您可以将导航属性名称更改为您喜欢的任何名称:

enter image description here

只需更改名称、保存更改并完成...

(实际上有很多方法可以进入 Navigation Property 属性窗口 - 您也可以在模型图中右键单击它)

关于c# - Entity Framework (数据库优先)对同一表命名约定控制的多重关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26757860/

相关文章:

c# - 使用从数据库检索的 DateTime 进行减法给出奇怪的结果

c# - 使 AddOrUpdate 仅更改某些属性

c - 设置和获取值的方法/函数的命名约定是什么?

python - 定义特定于条件的变量是好的做法吗

c# - 对 PInvoke 的调用使堆栈不平衡...即使使用 Cdecl,dll 导入也会失败

c# - Silverlight 从 'dumb' 服务器按需加载引用数据

c# - 从对象列表中创建一个逗号分隔的字符串

c# - "Argument data type ntext is invalid for argument 1 of len function"错误

c# - Entity Framework 查询以包括实体集合的子实体

java - 包名称 - Java EE Web 应用程序