多级包含在C#Linq中

时间:2012-01-05 12:36:44

标签: c# linq entity-framework-4.1

我希望在我的linq语句中包含MULTI LEVEL,类似

var a = departments.include(u=>u.Customers)
                   .include(u=>u.Customers.Include(u=>u.Orders);

我该怎么做?

由于

4 个答案:

答案 0 :(得分:15)

您当然可以使用lambda表达式,但必须使用特殊格式:

var a = departments.Include(d => d.Customers.Select(c => c.Orders));

答案 1 :(得分:7)

这应该可以解决问题:

departments.Include("Customers.Orders");

显然你不能再使用lambda表达式了。

比照文档:http://msdn.microsoft.com/en-us/library/bb738708.aspx

答案 2 :(得分:2)

[Jeroen比较快,但我觉得lambda很好......]

应该不是问题。对于没有代理的实体框架,我们使用:

var a=departments.Include("Customers.Orders").Single(dept => dept.Customers.Id == id);

/维克多

答案 3 :(得分:0)

您可以使用LoadWith方法指定在执行查询时要检索的嵌套对象。