8

我有两张桌子,ReportsVisualizationsReports有一个字段 ,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 识别正确的关系多重性?

4

2 回答 2

3

EF 抱怨是因为听起来您正在使用 FK 关联 - 这意味着 VisualizationID 是实体的属性,并且也有一个可视化引用 - 您不能使用 FK 关联来执行此操作。

但是,如果您使用独立关联 - 这意味着没有 VisualizationID 属性 - 您可以缩小基数。

因此解决方案是从实体中删除 VisualizationID 属性,此时您需要继续映射关联。

希望这可以帮助

亚历克斯

于 2010-01-26T21:55:55.580 回答
2

我刚刚偶然发现了同样的问题 - 亚历克斯,你的解释在我的情况下是正确的,但是当然通过从概念模型中删除 FK 列,我不再有能力稍后通过更改来切换我的相关对象FK 字段的值......我将不得不恢复到旧技巧来做到这一点!

有没有什么计划可以让我们以 1 比 0..1 的关系吃蛋糕和吃蛋糕,即也可以拥有 FK 场?

格雷格

(ps我会评论,但我的代表还不够高!)

于 2010-02-24T14:52:00.530 回答