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

本文关键字:linq 查询 方法 语法 子句 from | 更新日期: 2023-09-27 18:04:45

我试图弄清楚如何将嵌套的from子句替换为方法语法。我尝试使用。select或。selectmany,但我没有设法得到相同的结果。

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

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

你有很多种写法。

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

虽然强制转换可能不是必需的,但它们只是在您的查询中显式声明它们时才存在的。删除它们可能会比较安全。