【发布时间】:2020-04-21 03:35:16
【问题描述】:
我有一个ApplicationUser 和一个Group:
public class ApplicationUser : IdentityUser
{
public int? AdminInGroupId { get; set; }
public int? UserInGroupId { get; set; }
public Group AdminInGroup { get; set; }
public Group UserInGroup { get; set; }
// some more properties
}
public class Group
{
public int Id { get; set; }
public string Name { get; set; }
public string GroupAdminId { get; set; }
public ApplicationUser GroupAdmin { get; set; }
public List<ApplicationUser> GroupUsers { get; set; }
}
这是我为Group 配置的OnModelCreating()(我没有为ApplicationUser 配置):
modelBuilder.Entity<Group>()
.HasOne(a => a.GroupAdmin)
.WithOne(g => g.AdminInGroup)
.HasForeignKey<ApplicationUser>(a => a.AdminInGroupId);
modelBuilder.Entity<Group>()
.HasMany(u => u.GroupUsers)
.WithOne(g => g.UserInGroup)
.OnDelete(DeleteBehavior.NoAction);
运行下面的查询时,我没有收到GroupAdmin:
Group group = await db.Groups
.Include(a => a.GroupAdmin)
.Include(u => u.GroupUsers)
.Where(m => m.Id == id)
.FirstOrDefaultAsync();
注意GroupAdmin 是null,而GroupAdminId 有一个值。
【问题讨论】:
标签: c# asp.net-core entity-framework-core ef-code-first relational-database