【问题标题】:Mutilevel include in C# LinqC# Linq 中的多级包含
【发布时间】:2012-01-05 12:36:43
【问题描述】:

我想在我的 linq 语句中包含 MULTILEVEL,类似于

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

我该怎么做?

谢谢

【问题讨论】:

    标签: c# linq entity-framework-4.1


    【解决方案1】:

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

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

    【讨论】:

    • 什么鬼,我已经接受了 jeroenh 的答案,但我从不喜欢静态字符串,你的答案太棒了。非常感谢
    【解决方案2】:

    这应该可以解决问题:

    departments.Include("Customers.Orders");
    

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

    参见。此处的文档:http://msdn.microsoft.com/en-us/library/bb738708.aspx

    【讨论】:

    【解决方案3】:

    [Jeroenh 更快,但我认为 lambda 还可以...]

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

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

    /维克多

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-05-17
        • 1970-01-01
        • 2016-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多