entity framework无法识别的唯一密钥

我有两个表, ReportsVisualizationsReports有一个字段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我会评论,但我的代表还不够高!)