在EF7中加载实体

时间:2016-04-18 06:13:52

标签: entity-framework entity-framework-core

我有一个集合内有集合的实体。我在加载收藏内容时遇到问题。

// Site 
public class Site{
    protected Site()
    {           
        SiteUsers = new HashSet<SiteUser>();
    }    
    public virtual ICollection<SiteUser> SiteUsers { get; set; }
}

// Site User
public class SiteUser
{
    protected SiteUser()
    {
        Roles = new HashSet<SiteUserRole>();
    }
    public virtual ICollection<SiteUserRole> Roles { get; protected set; }

 }


// SiteUserRole

public class SiteUserRole
{
    protected SiteUserRole()
    {
    }

    private SiteUserRole(Guid id, SiteRoleEnum role)
    {
        Id = id;
        Role = role;
        DateCreated = DateTimeOffset.UtcNow;
    }

    public Guid Id { get; set; }
    public SiteRoleEnum Role { get; set; }
    public DateTimeOffset DateCreated { get; set; }

    public static SiteUserRole Create(Guid id, SiteRoleEnum role)
    {
        return new SiteUserRole(id, role);
    }

}


//I put this on DbContext
protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Site>().HasMany(r => r.SiteUsers);            
    }

当我查询网站时,它没有&#39;包括siteuser的角色  return _context.Sites.Include(c =&gt; c.SiteUsers);

1 个答案:

答案 0 :(得分:0)

您没有包含角色:

context.Sites.Include(c => c.SiteUsers).ThenInclude(su => su.Roles);