具有多个from子句的linq查询的方法语法

时间:2016-08-31 03:54:05

标签: c# linq

我试图弄清楚如何将嵌套的from子句替换为方法语法。我正在尝试.Select或.SelectMany,但我没有设法得到相同的结果。

  var query = (from DirectToStoreStore s in dtsOrder.Stores
                        from DirectToStoreProduct p in s.Products
                        where p.DirectToStoreOrderLineID == directToOrderLineID
                        select p);

1 个答案:

答案 0 :(得分:2)

你有很多方法可以写它。

var query = dtsOrder.Stores.Cast<DirectToStoreStore>()
    .SelectMany(s => s.Products.Cast<DirectToStoreProduct>()
        .Where(p => p.DirectToStoreOrderLineID == directToOrderLineID)
    );

虽然可能没有必要使用强制转换,但它们只是存在,因为您在查询中明确声明了它们。删除它们可能是安全的。