Asp.net LINQ到SQL-选择带WHERE的SUM

Asp.net LINQ到SQL-选择带WHERE的SUM,asp.net,vb.net,linq-to-sql,sum,Asp.net,Vb.net,Linq To Sql,Sum,我很难让Linq到Sql查询正常工作。基本上,我只希望表中符合特定条件的行的列的总和。简化版本如下: 订单=包含产品的订单 OrderProducts=包含订单中的产品的关系表 Products=包含产品信息的表 我可以得到如下产品数量的总和: Dim totalQty = requests.Sum(Function(p) p.OrderProducts.Sum(Function(q) CType(q.ProductQty, Nullable(Of Integer)))) 请求是订单的一个索引

我很难让Linq到Sql查询正常工作。基本上,我只希望表中符合特定条件的行的列的总和。简化版本如下:

订单=包含产品的订单 OrderProducts=包含订单中的产品的关系表 Products=包含产品信息的表

我可以得到如下产品数量的总和:

Dim totalQty = requests.Sum(Function(p) p.OrderProducts.Sum(Function(q) CType(q.ProductQty, Nullable(Of Integer))))
请求是订单的一个索引

但是我还需要得到实际产品满足一定条件时的数量总和。类似于

        Dim totalQty = requests.Sum(Function(p) p.OrderProducts.Sum(Function(q) CType(q.ProductQty, Nullable(Of Integer))))  
。。。其中p.OrderProducts.Product.ProductAttribute=true

我如何使用额外的where子句来获取该查询,从而仅获取productAttribute=true的qtys的总和???谢谢

Dim totalQty = requests _
    .Sum(Function(p) p.OrderProducts _
        .Where(Function(q) q.Product.ProductAttribute = true) _
        .Sum(Function(q) CType(q.ProductQty, Nullable(Of Integer))))