我正在尝试在现有SQL Server基础架构上设置EDM,并遇到了问题。
EDM将不解析与复合外键的PK-FK关系。
我的数据库表结构看起来像这样(名称已更改以保护无辜者):
到目前为止我?希望我还没有失去你。完成所有操作后,我的结构如下所示:
此结构在SQL Server中运行良好。在EDM?没那么多。它不允许我构建OFFICEPERSONSLOCATION和OFFICEPERSONS之间的关系。我收到以下错误:
错误6037:存储模型中省略了外键约束'FK_OFFICEPERSONSLOCATION_OFFICEPERSONS'。表'Model.Store.OFFICEPERSONSLOCATION'的列'OffID'是参与多个关系的外键。一对一的实体模型将无法验证,因为数据不一致是可能的。
咦?数据不一致?!?怎么样?
如何让我的实体框架识别出来?
答案 0 :(得分:2)
我同意这是实体框架的问题,问题是愚蠢的。即使您将UPDATE CASCADE设置为“无操作”,也不会产生不一致,但不是,它声称您可以以某种方式。
在任何情况下,在这种情况下,如果您愿意使用代理键而不是复合键,您可以解决这个问题,因为这是唯一可以改变的地方ID引用位于主表中。
在这种情况下,OffID可能是“不一致”,但是通过在OFFICEPERSONS和OFFICELOCATIONS表中使用ID(因此在OFFICEPERSONSLOCATION中引用),您将被迫在其主表中管理OffId。