以多对多关系映射查找/联结表实体

时间:2015-09-09 16:40:23

标签: c# entity-framework

我尝试映射多对多关系包括查找/联结表实体,我遇到了一些麻烦。以下是我的(基本)模型:

public class User
{
    public int UserId { get; set; }
    public IList<UserGroupCode> Codes { get; set; }
}

public class Group
{
    public int GroupId { get; set; }
    public IList<UserGroupCode> Codes { get; set; }
}

public class UserGroupCode
{
    public int UserGroupCodeId { get; set; }
    public int UserId { get; set; }
    public int GroupId { get; set; }
    public string Value { get; set; }
}

以下是{I}一直使用

User的配置
HasMany(p => p.Codes).WithMany().Map(m =>
{
    m.ToTable("UserGroupCodes");
    m.MapLeftKey("UserId");
    m.MapRightKey("UserGroupCodeId");
});

我已经看过很多关于如何映射多对多关系的文章,这些关系不包括查找表作为实体(典型的例子是用户 - 角色关系)。但是,正如您所看到的,我在Value关系上有一个UserGroupCode属性,这使得该关系成为一个实际的实体。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我最后遇到this文章。我为UserGroupCodeUser的{​​{1}}模型添加了导航属性。

Group

关系所需的唯一配置是public class UserGroupCode { public int UserGroupCodeId { get; set; } public int UserId { get; set; } public User User { get; set; } public int GroupId { get; set; } public Group Group { get; set; } public string Value { get; set; } } 实体:

UserGroupCode