实体框架 - 模型优先,多对多映射

时间:2012-02-02 11:42:18

标签: .net entity-framework-4.1 ef-model-first

在数据库中,我有两个表UserOrganization以及一个桥接表Users_Orgs

Users_Orgs表的复合键包含两列userIdorganizationId。当我使用设计器创建关联时,它会为引用约束创建两个主体 - UsersUsers_Orgs。问题在于Users_Orgs约束 - 它包含一个由organizationIduserId组成的密钥。由于organizationId不在User表中,因此无法映射,因此无法编译。

Users_Orgs table Users_Orgs Constraints

单击“删除”按钮时,对话框才会关闭,organizationId只是映射到users表的主键(不是userId)

如何在现有数据库上使用复合键进行多对多的映射?

1 个答案:

答案 0 :(得分:1)

为什么你的模型中有桥接表?如果此表中没有其他属性,则不需要它。否则,您应该只模拟UsersOrganizations之间的关系,并正确配置多对多的多样性。 EF将自动为此关系创建桥接表和映射。

解决您的问题:桥接表是依赖的,而非主体的。切换约束中的角色并将User.UserId PK映射到Users_Orgs.UserId FK。