Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架:为TPT加载子类类型的属性_C#_Entity Framework_Linq To Entities_Lazy Loading_Eager - Fatal编程技术网

C# 实体框架:为TPT加载子类类型的属性

C# 实体框架:为TPT加载子类类型的属性,c#,entity-framework,linq-to-entities,lazy-loading,eager,C#,Entity Framework,Linq To Entities,Lazy Loading,Eager,我用我有这样的东西 class A { //some properties } class B : A { //some properties } class C : A { //some properties public virtual D D; } class D { //some properties } class E { //some properties public virtual

我用我有这样的东西

class A
{
    //some properties
}

class B : A
{
    //some properties        
}

class C : A
{
    //some properties  
    public virtual D D;      
}

class D
{
    //some properties
}

class E
{
    //some properties  
    public virtual A A;
}

class MyDbContext : DbContext
{
    public DbSet<E> Eis { get; set; }

    ...
}
DbContext.Eis.Include("A")/*But I'm not able also to add .Include("A.D")*/;
在这种情况下,是否可以进行快速加载

更新


@马蒂说这是不可能的。在我看来,我只能使用延迟加载,对吗?但我想强制加载对象,因为我将在DbContext被释放后使用对象。那我该怎么做呢?目前我使用for循环访问每个元素进行延迟加载。

当A类没有属性D时,你怎么能问这个问题。如果你要加载“C”,那么它将工作db.Set.Include(p=>p.A)我想加载所有EntityContainesPropertyAA不是属性:它是一个类,并且从它派生的所有类都已经具有在类A中定义的属性,而不需要执行“include”。include用于返回导航属性,导航属性本身就是实体集合(类A中定义的属性不是实体集合)。你想做什么?好吧,我要问你,你不能那样做,因为A-没有属性D