gpt4 book ai didi

c# - 升级到 EF 6,现在出现 LINQ 错误

转载 作者:行者123 更新时间:2023-11-30 21:55:08 25 4
gpt4 key购买 nike

我使用的是 Entity Framework 4 或 5,我的代码运行良好。我现在已经升级到 Entity Framework 6,但出现以下错误

"LINQ to Entities does not recognize the method 'System.Nullable1[System.DateTime] TruncateTime(System.Nullable1[System.DateTime])' method, and this method cannot be translated into a store expression."

 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?

最佳答案

EntityFunctions 已替换为 DbFunctions在 Entity Framework v6.0 中。

您应该将 EntityFunctions.TruncateTime 更改为 DbFunctions.TruncateTime 并从项目中删除 System.Data.Entity

关于c# - 升级到 EF 6,现在出现 LINQ 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32540984/

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