gpt4 book ai didi

c# - Linq to Sql 以 lambda 和作为 where 条件

转载 作者:太空狗 更新时间:2023-10-29 21:41:11 24 4
gpt4 key购买 nike

我有以下查询

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)).GetValueOrDefault()

或者写的有点不一样

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

关于c# - Linq to Sql 以 lambda 和作为 where 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8000482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com