2013-04-13 94 views
0

我有以下LINQ查詢,它可以根據需要工作,但不是所有的記錄都會在鏈接表中沒有記錄的情況下返回。LINQ lambda可爲空的總和在哪裏條件

Dim query as List(Of Project) = context.Projects.Where(Function(a) a.Invoices.Sum(Function(b) b.InvoiceAmount) - a.Payments.Sum(Function(c) c.PaymentAmount) <> 0) 

如果一個項目在發票表中的條目,但在支付表中沒有條目,則記錄不會被退回。

我已回顧一個類似的問題Linq to Sql with lambda sum as a where condition但無法解決如何更正上述查詢。

回答

0

爲什麼不只是添加一個條件來返回沒有付款的所有項目?

(我會在C#中做到這一點,但我敢肯定,你可以快速將其轉換爲VB.NET)

var query = context.Projects.Where(p => p.Payments.Count() == 0 || p.Invoices.Sum(i => i.InvouceAmount) - p.Payments.Sum(pm => pm.PaymentAmount) != 0)