【问题标题】:LINQ lambda nullable sum in where conditionLINQ lambda 可空总和在 where 条件下
【发布时间】:2013-04-13 22:20:03
【问题描述】:

我有以下 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,但不知道如何更正上述查询。

【问题讨论】:

    标签: vb.net linq entity-framework


    【解决方案1】:

    为什么不添加一个条件以退回所有未付款的项目?

    (我将在 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多