entity-framework - 从数据库中选择时包括子孙

标签 entity-framework linq-to-sql

我有以下型号

public class Parent
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual List<Child> Child { get; set; }
}

public class Child
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual List<GrandChild> GrandChild { get; set; }
}

public class GrandChild
{
    public int Id { get; set; }
    public string Name { get; set; }
}

我现在要做的是从数据库中选择一个包含 child 和孙子的 parent 列表。

没有高兴地尝试了以下内容:

List<Parent> parent = new List<Parent>();
parent = db.parent.ToList();

最佳答案

使用Include方法:

parent = db.parent.Include(parent => parent.Child.Select(child => child.GrandChild)).ToList();

对于旧版本的 Entity Framework,您必须使用字符串而不是 lambda 表达式:

parent = db.parent.Include("Child.GrandChild").ToList();

或者您可以使用我在博客中关于 here 的自定义 Include 扩展方法.

关于entity-framework - 从数据库中选择时包括子孙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20905441/

相关文章:

asp.net-mvc - 在 LINQ 查询和 ASP.NET MVC 方面需要帮助?

linq-to-sql - Linq to SQL 扩展性方法定义

c# - 我可以在 LINQ 插入后返回 'id' 字段吗?

c# - EF Core 已跟踪具有相同 id 的实体

sql-server - SQL Server 默认值不作为实体默认值出现

c# - EF ComboBox 不显示 SelectedItem 绑定(bind)

c# - dbcontext.Add 和 dbcontext.AddObject 之间有什么区别

c# - 从数据库获取Guid

.net - 使用 Linq To SQL 进行多次 SubmitChanges 和事务回滚

c# - .Net LINQ to SQL 异常