为什么在EF linq中查询比较DateTime.Now.AddMinutes(x)会出现有时不起作用的情况?在EFCore Linq查询中比较DateTime

发布时间 2023-09-01 10:31:47作者: 峨嵋峰

 _dbcontext.GetAll().Where(a=>a.createTime >= DateTime.Now.AddMinutes(-15)).ToList(); 

上边是有问题的代码,有时候明明createTime大于当前时间十五分钟之前,却查询不出来数据。

这个问题本质上是实体框架不知道如何转换DateTime.Now.AddMinutes(-15)为SQL,所以你需要获取值然后将其传递给实体框架.

像以下这段代码

var dateTime_now = DateTime.Now.AddMinutes(-15);
var list = _dbcontext.GetAll().Where(a=>a.createTime >= dateTime_now).ToList(); 

这样就可以了