如何将我的工作SQL查询转换为Linq(C#)?
c#
我有一个可以在 SQL Server 上返回我想要的结果的工作 SQL 查询:
SELECT
SUM(CriticalCount) As CriticalCount,
SUM(HighCount) As HighCount,
SUM(MediumCount) As MediumCount,
SUM(LowCount) As LowCount,
Timestamp
FROM [dbo].[TicketCounts]
GROUP BY Timestamp
ORDER BY Timestamp DESC
结果集是:
| 临界计数 | 高计数 | 中数 | 低计数 | 时间戳 |
|---|---|---|---|---|
| 32 | 15 | 18 | 3 | 2021-07-01 11:00:00 |
| 24 | 10 | 42 | 15 | 2021-06-30 10:00:00 |
回答
由于您没有选择时间戳,请在选择之前移动它
return await _dbContext.TicketCounts
.GroupBy(o => o.Timestamp)
.OrderByDescending(o => o.Timestamp)
.Select(tc => new TicketCount
{
CriticalCount = tc.Sum(o => o.CriticalCount),
HighCount = tc.Sum(o => o.HighCount),
MediumCount = tc.Sum(o => o.MediumCount),
LowCount = tc.Sum(o => LowCount)
}).ToListAsync();
或者您可以尝试将 Timestamp 属性添加到 TicketCount 并将其添加到 Select。