实体框架4.3 - 具有预先加载的多态查询

时间:2012-03-15 01:34:22

标签: linq polymorphism entity-framework-4.3

我的模型看起来像这样:

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语句的所有组合,并且没有成功。

1 个答案:

答案 0 :(得分:3)

如果你只需要加载child2,你可以使用:

var child2 = context.Parents
                    .OfType<Child2>()
                    .Include(c => c.Dependency)
                    .ToList();

如果您还需要加载所有其他派生类型,您很可能需要使用第二个查询或尝试进行一些联合。 EF中的多态查询在预先加载时效果不佳。