0
我試圖選擇訂單,其中有超過2000個訂購的產品,具體取決於其他值。我需要從訂單表中選擇信息,但在OrdersProducts表中檢查此值,特別是OrdersProducts.ProductQty的總和。由於其他要求,我還需要使用謂詞構建器來完成此操作。到目前爲止,我有這個,但它沒有正確返回結果。它使用了嵌套的Lambda表達式,我不知道我可以做什麼,但是我嘗試了它並且工作正常,但是它沒有返回正確的結果。Linq to Sql - 在where子句中使用sum
Dim getOrders = From d In db.Orders _
Where d.Status = OrderStatus.Approved _
Select d
' Then a for loop adding parameters via Predicatebuilder...
If over2000 = True Then
' over 2000
predicate1 = predicate1.And(Function(d) (d.OrderProducts.Sum(Function(c) c.ProductQty > 2000)))
Else
' under 2000
predicate1 = predicate1.And(Function(d) (d.OrderProducts.Sum(Function(c) c.ProductQty < 2000)))
End If
basePredicate = basePredicate.Or(predicate1)
' End For loop
getOrders = getOrders.Where(basePredicate)
爲了簡潔,我刪除了一些代碼,但我認爲這得到了重點。我怎樣才能做到這一點??謝謝!
而且,當然,也修改「2000以下」部分。 – 2009-05-26 16:18:02