c# – Linq to Entities group按周编号

我正在使用ASP.NET v4.5和 linq实体
我试图按周使用以下代码对数据进行分组
var groupedByWeek = salesOrdersList
    .GroupBy(i => i.DueDate.AddDays(-(int)i.DueDate.DayOfWeek));

但是我得到一个“黄色死亡屏幕”,错误:

LINQ to Entities does not recognize the method ‘System.DateTime AddDays(Double)’ method,and this method cannot be translated into a store expression.

理想情况下我想说

var groupedByWeek = salesOrdersList.GroupBy(i => i.DueDate.WeekNumber);

但生活并不那么容易!

有没有人知道使用Linq to Entities的周数的方法?

解决方法

使用 SqlFunctions.DatePart()方法:
var groupedByWeek = salesOrdersList.GroupBy(i => SqlFunctions.DatePart("week",i.DueDate));

它会将DATEPART sql函数调用添加到生成的SQL查询中.

相关文章

项目中经常遇到CSV文件的读写需求,其中的难点主要是CSV文件...
简介 本文的初衷是希望帮助那些有其它平台视觉算法开发经验的...
这篇文章主要简单记录一下C#项目的dll文件管理方法,以便后期...
在C#中的使用JSON序列化及反序列化时,推荐使用Json.NET——...
事件总线是对发布-订阅模式的一种实现,是一种集中式事件处理...
通用翻译API的HTTPS 地址为https://fanyi-api.baidu.com/api...