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 语句组合,但都没有成功。

4

1 回答 1

3

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

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

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

于 2012-03-15T10:03:39.987 回答