实体框架 - 手动添加导航属性

时间:2010-12-16 22:10:42

标签: c# entity-framework entity-framework-4 navigation-properties

我从我的数据库生成了一个实体框架模型(4.0)。我没有设计数据库,也没有对模式的任何控制,但是有一些表没有定义外键约束,但是定义了隐式关系。

例如:

我有一个名为People的表,其中包含以下列: GenderID RaceID

有Gender和Race的表,但People表中没有外键。

当我导入模型时,它没有为这些关系添加导航属性。我尝试手动添加它,但禁用了“从角色到角色”。我不确定如何自己添加关系。我该怎么做?

2 个答案:

答案 0 :(得分:173)

是的 - 这不是那么简单。

这是你做的:

1 - 右键单击​​设计器,添加 - >的协会

2 - 设置关联和基数(人* * 1性别,人* .. 1种族)

3 - 进入模型浏览器 - >的协会

4 - 右键单击​​新创建的关联,单击属性

5 - 在这里,您需要设置键和级联选项的端点。确保端点正确。您还可以在此处为隐式导航属性设置参照约束。

6 - 将导航属性映射到相关的表/字段。

7 - 验证您的模型,交叉手指。

希望这有帮助。

答案 1 :(得分:43)

我遇到了this blog post提出了以下解决方案,这对我来说很有用(不幸的是我无法让RPM1984在我的情况下工作)。

  1. 通过设计师背景右键单击上下文菜单
  2. 添加关联
  3. 设置您的关联(请务必取消选中创建外键)
  4. 右键单击关联,然后选择“属性”
  5. 点击参考约束的 ... 按钮
  6. 设置
  7. 中的键之间的关系
  8. 验证(来自设计师上下文菜单)
  9. ???
  10. 利润!