【问题标题】:Converting SQL query into Linq which used complex sum with group by将 SQL 查询转换为使用复数和 group by 的 Linq
【发布时间】:2022-01-07 12:07:09
【问题描述】:

这是我的Service 表的列:

id
serverPlace
count

这是一个我需要将其转换为 Linq 的 SQL 查询:

 SELECT Service.id,
    Service.serverPlace,
    sum(Service.count * 12 + MONTH(getdate())) AS sum
   FROM Service
  GROUP BY Service.id, Service.serverPlace;

我不知道如何用 Linq 转换和实现sum 部分。

【问题讨论】:

  • 这就像普通的带有内存列表的 Linq 还是实体框架?
  • 就像 linq to objects
  • 所以 Linq 正在后台被翻译成 SQL?
  • 是的,它会在后台转换成sql

标签: c# linq


【解决方案1】:

应该是这样的:

var month = DateTime.Now.Month;
var result = await dbContext.Services.GroupBy(r=> new { r.Id, r.ServerPlace })
            .Select(r=> new {
             r.Key.Id,
             r.Key.ServerPlace,
             Sum = r.Sum(q=> q.Count*12 + month)
            }).ToArrayAsync();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2016-11-25
    相关资源
    最近更新 更多