gpt4 book ai didi

c# - 将 SQL 转换为带计数的 linq 表达式

转载 作者:太空狗 更新时间:2023-10-30 00:58:32 24 4
gpt4 key购买 nike

我正在尝试将以下 SQL 转换为 LINQ 表达式

SELECT    COUNT(ID) AS Count, MyCode
FROM dbo.Archive
WHERE DateSent>=@DateStartMonth AND DateSent<=@DateEndMonth
GROUP BY MyCode

我一直在尝试以这个网页为例:
Converting SQL containing top, count, group and order to LINQ (2 Entities)

到目前为止我已经明白了,但我仍然坚持理解新的部分

var res = (from p in db.Archives
where (p.DateSent>= dateStartMonth) && (p.DateSent< dateToday)
group p by p.MyCode into g
select new { ??????MyCode = g.something?, MonthlyCount= g.Count() });

在此先感谢您的帮助


更新:
你能解释一下 g.Key 是什么吗?我不明白那个变量是从哪里来的或者它指的是什么?我的意思是,如果我将 4 种不同的东西分组怎么办?我该如何称呼每一个?

var res = from archive in db.Archives
where archive.DateSent >= dateStartMonth &&
archive.DateSent < dateToday
group archive by archive.MyCode, archive.Extra into archiveGrp
select new
{
MyCode = archiveGrp.Key,
Extra = archiveGrp.???
MonthlyCount = archiveGrp.Count()
};

最佳答案

下面的 LINQ 语句应该有效:

var res = from archive in db.Archives
where archive.DateSent >= dateStartMonth &&
archive.DateSent < dateToday
group archive by archive.MyCode into archiveGrp
select new
{
MyCode = archiveGrp.Key,
MonthlyCount = archiveGrp.Count()
};

请注意 Key property将包含您分组的属性的值,在本例中为 MyCode。

关于c# - 将 SQL 转换为带计数的 linq 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2640181/

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