我有两个表,Reports
和Visualizations
。 Reports
有一个字段VisualizationID
,它通过外键指向Visualization
的同名字段。它还具有在现场声明的唯一键。 VisualizationID
不可为空。这意味着关系必须为0..1到1,因为每个 Reports
记录必须具有与之关联的唯一非空Visualizations
记录。
实体框架不会这样看待它。我收到以下错误:
Error 113: Multiplicity is not valid in Role 'Report' in relationship 'FK_Reports_Visualizations'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be *.
这里有什么问题?如何让EF识别正确的关系多样性?
答案 0 :(得分:3)
EF抱怨,因为它听起来像你正在使用FK关联 - 这意味着VisualizationID是实体的属性,并且还有一个可视化引用 - 你不能用FK关联这样做。
但是,如果您使用独立关联 - 这意味着没有VisualizationID属性 - 您可以缩小基数。
因此,解决方案是从实体中删除VisualizationID属性,此时您需要继续映射关联。
希望这有帮助
亚历
答案 1 :(得分:2)
我只是偶然发现了同样的问题 - 亚历克斯,你的解释在我的情况下是正确的,但当然通过从概念模型中删除FK列,我不再能够在以后切换我的相关对象通过改变FK字段的值...我将不得不恢复旧的技巧来做到这一点!
有没有计划允许我们吃蛋糕并以1到0..1的关系吃它,也就是说能够拥有FK字段?
格雷格
(p.s。我会评论,但我的代表还不够高!)