0

我有以下 LINQ 查询,它可以根据需要工作,除了在链接表中没有记录的情况下,并非所有记录都返回。

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,其中 lambda sum 作为 where 条件,但无法解决如何更正上述查询。

4

1 回答 1

0

Why not just add a condition to return all projects with no payments?

(I'll do this in C#, but I'm sure you can quickly translate it to 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)
于 2013-04-13T14:17:06.563 回答