entity framework无法识别的唯一密钥
我有两个表, Reports
和Visualizations
。 Reports
有一个字段VisualizationID
,它通过外键指向Visualization
的同名字段。 它还具有在该字段上声明的唯一键。 VisualizationID
不可为空。 这意味着关系必须为0..1到1,因为每个 Reports
记录必须具有与之关联的唯一的非空Visualizations
记录。
entity framework不会这样看待它。 我收到以下错误:
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识别正确的关系多样性?
EF正在抱怨,因为它听起来像是在使用FK关联 – 这意味着VisualizationID是实体的属性,并且还有可视化引用 – 并且您无法使用FK关联执行此操作。
但是,如果您使用独立关联 – 这意味着没有VisualizationID属性 – 您可以缩小基数。
因此,解决方案是从实体中删除VisualizationID属性,此时您需要继续映射关联。
希望这可以帮助
亚历克斯
我只是偶然发现了同样的问题 – 亚历克斯,你的解释在我的情况下是正确的,但当然通过从概念模型中删除FK列,我不再能够通过更改后来切换我的相关对象FK领域的价值……我将不得不恢复旧技巧来做到这一点!
有没有计划允许我们吃蛋糕并以1到0..1的关系吃它,也就是说能够拥有FK字段?
格雷格
(ps我会评论,但我的代表还不够高!)