【发布时间】:2015-09-12 16:16:27
【问题描述】:
我使用的是 Entity Framework 4 或 5,我的代码运行良好。我现在已升级到 Entity Framework 6,但出现以下错误
“LINQ to Entities 无法识别方法 'System.Nullable
1[System.DateTime] TruncateTime(System.Nullable1[System.DateTime])' 方法,并且该方法无法转换为存储表达式。”
public IEnumerable<DateTimeAndVisitCount> GetRecentVisitsByDay(int numberOfDays)
{
var fromDate = DateTime.Now.AddDays(-numberOfDays);
var result = (from d in this.DataContext.VisitDetail
where d.DateTime >= fromDate
group d by (DateTime)EntityFunctions.TruncateTime((DateTime)d.DateTime) into g
select new DateTimeAndVisitCount()
{
DateTime = (DateTime)g.Key,
Count = g.Count()
});
return result;
}
在上面的对象this.DataContext.VisitDetail中,我会指出VisitDetail.DateTime不接受空值。
如您所见,我已尝试将所有内容都转换为 DateTime,但出现相同的错误消息。
如何安抚Entity Framework 6?
【问题讨论】:
标签: c# .net entity-framework linq datetime