【发布时间】:2017-07-29 05:54:48
【问题描述】:
在 Entity Framework 6 中我可以使用SqlFunctions.DatePart() 方法:
var byWeek = data.GroupBy(x => SqlFunctions.DatePart("week", x.Date));
但是这些类(DbFunctions 和 SqlFunctions 在 Entity Framework Core 中不可用)(reference)。
所以我的问题是如何在 Entity Framework 核心中按周分组?
【问题讨论】:
-
由于目前所有具有
GroupBy子句的 EF Core 查询都在内存中处理,因此您可以安全地使用x.Date.DayOfYear / 7或类似的东西。 -
@IvanStoev 不再。自 ef core 2.1 起,group-by 查询被编译为 sql。请参阅我的答案以获取工作示例。
-
注意:对于发现此问题的任何人,请确保您了解 week 和 iso_week 之间的区别以及您想要的。 ISO 周的年份并不总是与日历年相同(例如,在 2020 年,第 1 周开始于 2010 年 12 月 30 日)。 en.wikipedia.org/wiki/ISO_week_date
标签: linq group-by .net-core entity-framework-core week-number