You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在LINQ中使用SUM与GroupBy:SQL分组查询转LINQ实现咨询

完整LINQ实现方案

嘿,我来帮你补全这段LINQ代码,完美对应你给出的SQL查询和SpecialClass定义:

var result = db.YTDTRNS
    // 对应SQL中的 GROUP BY ORDNO,CURR,用匿名类型作为分组键
    .GroupBy(y => new { y.ORDNO, y.CURR })
    // 将分组结果投影到你的SpecialClass类中
    .Select(group => new SpecialClass
    {
        ORDNO = group.Key.ORDNO,
        CURR = group.Key.CURR,
        // 对应SQL中的 SUM(AMOUNT) as SUMMEDAMT
        SUMMEDAMT = group.Sum(item => item.AMOUNT)
    })
    // 可选:如果需要立即执行查询并得到内存中的集合,加上ToList()
    .ToList();

关键细节说明:

  • 分组逻辑:用匿名类型new { y.ORDNO, y.CURR }作为分组键,和SQL里多字段分组的逻辑完全一致,EF会自动将其转换成对应的GROUP BY子句。
  • 聚合与投影:在Select方法中,我们从分组对象(group)里获取分组键的值,再用Sum方法计算分组内所有AMOUNT的总和,最后映射到SpecialClass的对应属性上。
  • 执行时机:如果不需要立即获取结果,可以去掉.ToList(),保持IQueryable<SpecialClass>类型,这样查询会延迟到实际使用数据时才执行。

内容的提问来源于stack exchange,提问作者questionMarks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:34:47