2012-04-05 110 views
0

如果我有以下表/实体:C#实体框架 - LINQ与实体查询子查询

发票
- InvoiceId(PK)
- INVOICEAMOUNT

InvoicePayment
- InvoicePaymentId(PK)
- InvoiceId(FK)
- PaymentAmount

我如何构建一个LINQ到E实体查询选择具有未付金额的发票 - 记住付款的存在并不表示发票没有未付金额(即,部分付款是可能的)。

回答

1

我会去沿着这

from i in invoices 
where i.Payments.Sum(p=>p.PaymentAmount) < i.InvoiceAmount 
select i; 
+0

感谢@Luke麦格雷戈线的东西,我申请太多心思给它,并试图与.ANY东西(),这是没有必要的。 – Rob 2012-04-05 23:57:24

+0

你确定你想在这里得到一笔钱,你可以用完全流利的语法来做同样的事情,但我认为它看起来像可读性一样 – 2012-04-05 23:59:37