C# 如何显式加载所有集合项的导航属性?

C# 如何显式加载所有集合项的导航属性?,c#,entity-framework-4,ef-code-first,C#,Entity Framework 4,Ef Code First,以下是示例模型类,首先与实体框架代码一起使用: public class Master { public int Id { get; set; } public Collection<Detail> Details { get; set; } } public class Detail { public int Id { get; set; } public Master Master { get; set; } public SubDetail SubDeta

以下是示例模型类,首先与实体框架代码一起使用:

public class Master
{
  public int Id { get; set; }
  public Collection<Detail> Details { get; set; }
}

public class Detail
{
  public int Id { get; set; }
  public Master Master { get; set; }
  public SubDetail SubDetail1 { get; set; }
  public SubDetail SubDetail2 { get; set; }
}

public class SubDetail
{
  public int Id { get; set; }
}
我应该使用什么来加载子详细信息?

试试看

context.Masters.Include(m => m.Details.Select(d => d.SubDetail1))
   .Include(m => m.Details.Select(d => d.SubDetail2))
   .Where(master => master.Id == 1);
非通用版本

context.Masters.Include("Details.SubDetail1")
   .Include("Details.SubDetail2")
   .Where(master => master.Id == 1);

DbQuery具有
Include
方法,该方法接收字符串路径作为参数。示例中的
是否包含任何自定义扩展方法?如果您使用的是EF 4.3,您应该能够使用it@Dennis在答案中添加了非通用版本
context.Masters.Include("Details.SubDetail1")
   .Include("Details.SubDetail2")
   .Where(master => master.Id == 1);