我有以下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,但无法解决如何纠正上述问题。
答案 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)