gpt4 book ai didi

c# - 简化LINQ-使用两个不同的where子句的Col的总和两次

转载 作者:太空宇宙 更新时间:2023-11-03 18:01:50 25 4
gpt4 key购买 nike

我下面的代码段需要两次往返数据库,因为where子句不同。

public string OutStanding(string PC)
{
var d = _context.MyTable.Where(w => w.debit == PC).Sum(s => s.amount);
var c = _context.MyTable.Where(w => w.credit == PC).Sum(s => s.amount);
return (d - c).ToString();
}


可以简化为一次往返DB吗?

最佳答案

您可以尝试以下方法:

return _context.MyTable.
Where(w => w.debit == PC || w.credit == PC).
Sum(s => w.credit == PC ? -s.amount : s.amount).ToString();


但是检查生成的sql。根据EF和使用的数据库的版本,可能会在客户端上对此进行评估。

关于c# - 简化LINQ-使用两个不同的where子句的Col的总和两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56896855/

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