我从我的数据库中生成了一个实体框架模型(4.0)。我没有设计数据库,也没有对模式进行任何控制,但有几个表没有定义外键约束,但却有一个隐式关系定义。实体框架 - 手动添加导航属性
例如:
我有以下几列一个表就叫人: GenderID RaceID
有两个性别和种族的表,但没有在人民表的外键。
当我导入模型时,它没有为这些关系添加导航属性。我试图手动添加它,但从角色和角色被禁用。我不知道如何自己添加关系。我该怎么做呢?
我从我的数据库中生成了一个实体框架模型(4.0)。我没有设计数据库,也没有对模式进行任何控制,但有几个表没有定义外键约束,但却有一个隐式关系定义。实体框架 - 手动添加导航属性
例如:
我有以下几列一个表就叫人: GenderID RaceID
有两个性别和种族的表,但没有在人民表的外键。
当我导入模型时,它没有为这些关系添加导航属性。我试图手动添加它,但从角色和角色被禁用。我不知道如何自己添加关系。我该怎么做呢?
是的 - 这不是那么简单。
这里就是你要做的:
1 - 右键单击设计师,添加 - >协会
2 - 设置的关联和基数(人*。1分性别,人民* ..1种族)
3 - 去到模型浏览器 - >协会
4 - 鼠标右键点击你新建的协会,单击属性
5 - 在这里你需要设置密钥和级联方案的终结点。确保你得到正确的端点。您也可以在此为您的隐式导航属性设置引用约束。
6 - 将导航属性映射到相关表/字段。
7 - 验证您的模型,交叉手指。
希望这会有所帮助。
我碰到了this blog post,它提出了以下解决方案,这对我很好(不幸的是我无法让RPM1984在我的情况下工作)。
+1第4点让我做对了,用RPM194答案忽略了这一点。 – 2014-05-21 18:21:09
+1用于保存我的头发剩下的部分。我将添加#6需要更改关联的属性页面中的外键列,参照约束设置。点击[...]以打开参考约束对话框,并将设计器插入子表中的虚拟字段更改为从属属性。 – 2011-12-17 23:25:55
您还必须转到子表的属性并删除设计者添加的虚拟字段(并且该字段不映射到子表中的任何实际字段)。 – 2011-12-17 23:41:47
在查看的情况下,还要确保您的主键定义正确(右键单击选择相关字段,在属性中将它们标记为EntityKey)。 否则,您可能会得到'多重性在关系中的角色中无效因为相关角色指的是关键属性...' – 2015-04-17 00:32:18