【问题标题】:Entity Framework - Model First, Many-to-Many Mapping实体框架 - 模型优先,多对多映射
【发布时间】:2012-02-02 11:42:17
【问题描述】:

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

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

单击“删除”按钮时,对话框将关闭,organizationId 仅映射到用户表的主键(不是 userId)

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 桥接表不是我创建的,它来自现有数据库。我无法更改数据库,因为它是 CMS (Liferay) 的一部分,并且可以通过修补程序和更新进行更改
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 2011-08-08
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多