linq - Entity Framework 4.3 - 带有预加载的多态查询

标签 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; }
}

我正在尝试找出由谁来编写加载所有父项并急切加载对所有 Child2 的依赖项的 Linq 查询。这可能吗?我已经尝试了所有我能想到的 Linq 语句组合,但都没有成功。

最佳答案

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

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

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

关于linq - Entity Framework 4.3 - 带有预加载的多态查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9712838/

相关文章:

linq - 如何根据属性是否存在来查询 RavenDb 文档

从基础到派生的 shared_ptr 的 C++ dynamic_ptr_cast 失败

java - Java 中子类型参数的多态性

linq - 如何生成 BlToolkit 模型

linq - 你会把你的 LINQ 查询抽象成扩展方法吗

c++ - 访问映射中元素的成员,其值为 C++ 中的抽象基类

asp.net-mvc - 在表上引入 FOREIGN KEY 约束可能会导致循环或多个级联路径导致 Database.SetInitializer 无法工作?

c# - 在 Entity Framework 4.3 中设置命令超时

c# - Code first DbMigrator 在从不同机器构建时导致错误

c# - 使用 LINQ 和 C# 从旧列表创建新列表