我尝试映射多对多关系和包括查找/联结表实体,我遇到了一些麻烦。以下是我的(基本)模型:
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
属性,这使得该关系成为一个实际的实体。
提前致谢。
答案 0 :(得分:0)
我最后遇到this文章。我为UserGroupCode
和User
的{{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