Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以lambda和作为where条件的Linq到Sql_C#_Linq_Linq To Sql - Fatal编程技术网

C# 以lambda和作为where条件的Linq到Sql

C# 以lambda和作为where条件的Linq到Sql,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我有以下疑问 from p in _context.Products where p.Purchases.Sum(item => item.CCAmount) > 0 && p.Purchases.Sum(item => item.CCAmount) > p.PayOuts.Sum((item => item.AmountPaid) select p; 基本上,我正在尝试检索购买总额大于0且购买总额大于我们已支付金额的所有产品(我们代表其他人销售产

我有以下疑问

from p in _context.Products
where p.Purchases.Sum(item => item.CCAmount) > 0 && p.Purchases.Sum(item => item.CCAmount) > p.PayOuts.Sum((item => item.AmountPaid)
select p;
基本上,我正在尝试检索购买总额大于0且购买总额大于我们已支付金额的所有产品(我们代表其他人销售产品并以全额或部分付款的方式支付)。问题是,如果某个特定产品的支出表中没有条目,则该产品不会出现在结果列表中。但是,如果我在支出表中插入支出,那么该产品将出现在产品列表中。就好像在空集合上使用sum不会像预期的那样进行计算,即0。我是不是遗漏了什么


谢谢您的帮助。

问题在于,如果没有要求和的记录,SQL中的
SUM
将返回
null

你需要欺骗一点

尝试:

或者用一种稍微不同的方式写

((int?)p.PayOuts.Sum(item => item.AmountPaid) ?? 0)

+1; 但我认为你仍然需要第二个案例的演员阵容来让外部C#高兴。。。?
((int?)p.PayOuts.Sum(item => item.AmountPaid) ?? 0)