我有模特"用户"具有类型"权限":
的权限集合 public class User : IUser<int>, IUser<string>
{
public virtual ICollection<Permission> Permissions
{
get { return _permissions ?? (_permissions = new Collection<Permission>()); }
set { _permissions = value; }
}
...
}
我有遗产:
public abstract class EntityPermission : Permission
{
public AccessedEntity AccessedEntity { get; set; }
...
}
public class ReadEntityPermission : EntityPermission
{
public bool AllowAll { get; set; }
...
}
当我请求用户
时DbSet.Include(c => c.Permissions)
我获得了 ReadEntityPermission 的所有简单字段(AllowAll == true)的权限,但属性 AccessedEntity为空。 有没有办法加载继承子项的引用属性?
p.s。:dbContext.Configuration.ProxyCreationEnabled和dbContext.Configuration.LazyLoadingEnabled是真的
答案 0 :(得分:1)
包含应该能够接受字符串作为参数。试试这个:
DbSet.Include("Permissions.AccessedEntity")
更新:
您无法在Permission类上访问AccessedEntity
属性,因为该类没有该属性。您必须使用EntityPermission
。像这样:
public virtual ICollection<EntityPermission> Permissions