【发布时间】:2013-04-12 10:36:56
【问题描述】:
我正在使用 ASP.NET v4.5 和 linq 到实体 我正在尝试使用以下代码按周对数据进行分组
var groupedByWeek = salesOrdersList
.GroupBy(i => i.DueDate.AddDays(-(int)i.DueDate.DayOfWeek));
但是我得到一个“黄屏死机”并出现错误:
LINQ to Entities 无法识别方法 'System.DateTime AddDays(Double)' 方法,并且该方法无法转换为存储表达式。
理想情况下我想放
var groupedByWeek = salesOrdersList.GroupBy(i => i.DueDate.WeekNumber);
但生活没那么容易!
有人知道在 Linq to Entities 中使用周数的方法吗?
【问题讨论】:
-
它有什么问题?
-
LINQ to Entities 无法识别方法 'System.DateTime AddDays(Double)' 方法,并且该方法无法转换为存储表达式。
-
如果将其更改为
i => i.DueDate - TimeSpan.FromDays(i.DueDate.DayOfWeek)或i => i.DueDate - new TimeSpan(i.DueDate.DayOfWeek, 0, 0, 0)会怎样? -
system.DayOfWeek 不可分配给参数类型 Double
-
嗯...在这种情况下,请尝试 Marcin 的答案。
标签: c# asp.net linq entity-framework linq-to-entities