在LINQ中比较日期会产生错误-方法不能转换为存储表达式

本文关键字:不能 方法 转换 表达式 存储 错误 LINQ 比较 日期 | 更新日期: 2023-09-27 18:11:09

我正试图拔出HourRegistrations

HourRegistration.Date == //withint the last 3 months

我正在尝试这样做(在网上找到了这个解决方案,但似乎不起作用)

var dbHourRegs = db.HourRegistration
        .Where(x => DateTime.Compare(x.Date, DateTime.Today.AddMonths(-3)) >= 0)
        .ToList();

但是正如标题所说,我一直得到这个错误:

LINQ to Entities不能识别方法System。DateTime AddMonths(Int32)'方法,该方法不能转换为存储表达式。

如何进行?或者更确切地说,我如何完成这项任务?

在LINQ中比较日期会产生错误-方法不能转换为存储表达式

方法日期时间。比较的是c#方法不能转换成sql查询。同样DateTime.Now.AddMonths也会因为同样的原因产生错误

你可以这样做

DateTime YourDate = DateTime.Now.AddMonths(-3);
var dbHourRegs = db.HourRegistration
        .Where(x => x.Date >= YourDate)
        .ToList();