gpt4 book ai didi

entity-framework - 如何使用linq按星期几分组

转载 作者:行者123 更新时间:2023-12-04 08:35:51 26 4
gpt4 key购买 nike

我正在尝试计算本周更新的一些记录,并按星期几对它们进行分组(取决于上次更新的时间)。例如,星期二:1,星期四:4,星期五:5 等...我不确定如何按星期几分组。

var data = repo
.Where(o => o.LastUpdated >= monday)
.GroupBy(o => o.LastUpdated)
.Select(g => new { DayOfWeek = g.Key, Count = g.Count() })
.ToList();

我试过 .GroupBy(o => o.LastUpdated.DayOfWeek 但这会引发错误:“LINQ to Entities 不支持指定的类型成员‘DayOfWeek’”

最佳答案

如果您只针对 SqlServer 数据库类型,则可以使用 SqlFunctions.DatePart像这样的规范函数

var data = repo
.Where(o => o.LastUpdated >= monday)
.GroupBy(o => SqlFunctions.DatePart("weekday", o.LastUpdated))
.Select(g => new { DayOfWeek = g.Key, Count = g.Count() })
.ToList();

不幸的是,DbFunctions 中没有定义这样的通用规范函数。 ,因此如果您的目标是另一种数据库类型(或多种数据库类型),唯一的选择是切换到 Linq To Objects 上下文,如 another answer 中所述。 .

关于entity-framework - 如何使用linq按星期几分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34555986/

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