c# - 如何使用 LINQ 对包含当前数据的特定列求和
问题描述
我有一个查询,它应该首先将数据库中从 3 个月前到当前日期的金额相加,如果它超过我在条件中输入的特定金额,它应该返回 false。
public Task<bool> SecurityCheck(CustomerData cust)
{
var checkRsult = (from x in dbContext.CustomerModel
where x.CustomerReference == cust.CustomerReference
&& x.Created >= DateTime.Today.AddMonths(-3)
select new
{
AccomulateAmount = x.AmountToTransfer
}).Sum(x => x.AccomulateAmount);
}
var finalResult=checkRsult+cust.Amount;
if(finalResult>250000){
//return false
}
else{
//store th model in the db
}
首先,我不确定我查询的方式是否正确(LINQ 部分),我的第二个问题是,有没有办法在单个查询中汇总包括当前传入的所有内容(cust.amount)?而不是先获取数据库总和,然后将当前的总和添加到其中?
解决方案
有点冗长,你可以做到
dbContext.CustomerModel
.Where(cm => cm.CustomerReference == cust.CustomerReference && cm.Created >= DateTime.Today.AddMonths(-3))
.Sum(cm => cm.AmountToTransfer)
推荐阅读
- java - 可以读取但不能使用 Spring 写入属性文件
- r - 在 R 中的测量方程中具有滞后的状态空间模型的估计
- javascript - 不是重大错误,但我收到“TypeError:无法读取未定义的属性”。我不确定我的下一步行动是什么
- mysql - 如何将命令的结果用作输入子项中的 var
- javascript - 将基于类的组件转换为基于功能的组件
- ios - FFMPEG 在解码流时对每一帧提出请求,性能降低
- scala - 斯卡拉 | 在二叉树中折叠
- javascript - 使用 JSON.parse 解析错误?
- python - 有关问题:Featured Enum 而不是 Switch ... 使用 lambda、枚举、闭包函数
- collections - 带条件退出队列,收集以过滤目的地