我的模型看起来像这样:
public abstract class Parent
{
public int Id { get; set; }
}
public class Child11 : Parent
{}
public class Child2 : Parent
{
public virtual Dependency Dependency { get; set; }
}
public class Dependency
{
public int Id { get; set; }
public virtual ICollection<Child2> Children { get; set; }
}
我试图弄清楚是谁写了一个Linq查询,该查询加载所有父亲和渴望加载所有Child2的依赖关系。这甚至可能吗?我已经尝试过我能想到的Linq语句的所有组合,并且没有成功。
答案 0 :(得分:3)
如果你只需要加载child2,你可以使用:
var child2 = context.Parents
.OfType<Child2>()
.Include(c => c.Dependency)
.ToList();
如果您还需要加载所有其他派生类型,您很可能需要使用第二个查询或尝试进行一些联合。 EF中的多态查询在预先加载时效果不佳。