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 with lambda sum を where 条件として確認しましたが、上記のクエリを修正する方法がわかりませんでした。

4

1 に答える 1

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)
于 2013-04-13T14:17:06.563 に答える