具有可能不同键的两个实体被映射到同一行

时间:2014-02-21 00:08:15

标签: sql entity-framework entity-framework-mapping

我有桌子 Field1 PK int not null Field2 PK int not null喜欢这个 当我想要映射此表时,我收到此错误

Error   3   Error 3034: Problem in mapping fragments starting at lines 2212, 2218:
Two entities with possibly different keys are mapped to the same row.
Ensure these two mapping fragments map both ends of the AssociationSet to the corresponding columns.

我试图在模型中删除并重新创建该表。当我添加表时它会给出另一个错误,但最后我总是得到这个错误

我如何处理这个问题,请帮助我...

3 个答案:

答案 0 :(得分:3)

当我调查这个问题时,我意识到有些事情,我之前读过这篇数据模型的一篇文章,我理解问题发生的原因。 (在实体框架中映射片段时出现问题)

实际上问题来自表映射,因为我说该表有很多关系所以那篇文章说如果你把那个表放在模型设计中它总是给我们这个错误,最后当我们在设计端删除那个表并添加在数据模型中静默地表,因此可以构建程序。我告诉你这个,因为也许你可以为此做出一个主意,因为我学会了这个,当我在模型中添加新视图时,vs并没有给我任何错误。

这是旧模型图片时删除红色框内的表格程序没有给出任何错误并继续使用底部表格

enter image description here

enter image description here

答案 1 :(得分:0)

如果没有其他效果,请尝试删除并重新创建整个.edmx文件。

当我向现有的Entity Framework 6.2项目中添加几个多对多表时,出现了此问题。 我尝试删除并重新生成模型中的所有表。似乎没有任何工作。我相信EF项目中某处出现了“垃圾”问题。

重新生成edmx时,我添加了项目中的所有表,包括多对多表。

答案 2 :(得分:0)

错误解决方案:3034

PK UserId; PK RoleId

两个主键不允许edmx file.so在该表中创建sno列,并将其作为主键。删除UserId和RoleId的pk。 现在在这两列中没有可用的主键。

喜欢

Pk sno; FK用户ID; FK RoleId