我想确定哪些发票仍有余额。我将通过实体框架通过发票并尝试计算哪些小计的金额大于应用的付款金额。LINQ混乱与总结和比较
我写了下面的5测试用例
var test1 = _invoiceRepository.Where(x => x.Subtotal > 0);
var test2 = _invoiceRepository.Where(x => x.Payments.Sum(y => y.Amount) > 0);
var test3 = _invoiceRepository.Where(x => x.Payments.Sum(y => y.Amount) < 60);
var test4 = _invoiceRepository.Where(x => x.Payments.Sum(y => y.Amount) < x.Subtotal);
var test6 = _invoiceRepository.Where(x => x.Payments.Sum(y => y.Amount) == x.Subtotal);
var test7 = _invoiceRepository.Where(x => x.Payments.Sum(y => y.Amount) != x.Subtotal);
结果返回这个数字发票
test1: 392
test2: 216
test3: 126
test4: 0
test6: 215
test7: 177
测试1说,我有发票,有大于0
分类汇总测试2 & 3表示我已将付款应用于发票,并且我可以正确地将它们相加。
测试4是我困惑的地方。我无法获得任何记录,将表中的总和与小数进行比较。我试过各种各样的括号,但无济于事。
测试6 & 7被建议和那些工作,但如果付款少于总和呢?或更大(发生了什么)?
如何修改我的LINQ以返回有余额的发票?
在此先感谢!
你确定'_invoiceRepository'记录有余额吗? – dasblinkenlight
test1确认392个发票中有392个具有小计。 –