LINQ lambda可以在哪里条件

时间:2013-04-13 14:01:17

标签: vb.net linq entity-framework

我有以下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 with lambda sum as a where condition,但无法解决如何纠正上述问题。

1 个答案:

答案 0 :(得分: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)