在数据库中,我有两个表User
和Organization
以及一个桥接表Users_Orgs
。
Users_Orgs
表的复合键包含两列userId
和organizationId
。当我使用设计器创建关联时,它会为引用约束创建两个主体 - Users
和Users_Orgs
。问题在于Users_Orgs
约束 - 它包含一个由organizationId
和userId
组成的密钥。由于organizationId
不在User
表中,因此无法映射,因此无法编译。
单击“删除”按钮时,对话框才会关闭,organizationId
只是映射到users表的主键(不是userId)
如何在现有数据库上使用复合键进行多对多的映射?
答案 0 :(得分:1)
为什么你的模型中有桥接表?如果此表中没有其他属性,则不需要它。否则,您应该只模拟Users
和Organizations
之间的关系,并正确配置多对多的多样性。 EF将自动为此关系创建桥接表和映射。
解决您的问题:桥接表是依赖的,而非主体的。切换约束中的角色并将User.UserId
PK映射到Users_Orgs.UserId
FK。