【发布时间】:2020-10-11 16:25:18
【问题描述】:
“用户”实体与“组成员”实体具有一对多关系。
public class User
{
#region Public properties
[Key]
[Column("id")]
public int Id { get; set; }
...
public virtual ICollection<GroupMember> GroupMembers { get; set; }
public virtual ICollection<Profile> Profiles { get; set; }
#endregion
}
public class GroupMember
{
#region Public properties
[Required]
[Column("groupid")]
public int GroupId { get; set; }
public virtual Group Group { get; set; }
[Required]
[Column("userid")]
public int UserId { get; set; }
public virtual User User { get; set; }
[Required]
[Column("lu_user")]
public int LuUser { get; set; }
[Required]
[Column("lu_date")]
public DateTime LuDate { get; set; }
#endregion
}
在UserDbContext类中,我设置关系如下:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<GroupMember>()
.HasKey(x => x.UserId);
modelBuilder.Entity<GroupMember>()
.HasOne(x => x.User)
.WithMany(x => x.GroupMembers)
.HasForeignKey(x => x.UserId);
}
执行查询时:
var user = _dbContext.Users
.Include(u => u.Profiles)
.Include(u => u.GroupMembers)
.ThenInclude(gm => gm.Group)
.Where(u => u.Id == id)
.Select(u => u)
.SingleOrDefault();
“GroupMembers”字段应包含七条记录。查询结果为“GroupMembers”字段的一条记录。
我不明白为什么我没有得到正确的关系记录数。
【问题讨论】:
标签: .net entity-framework entity-framework-core