在EF Core Linq查询中比较DateTime

时间:2017-02-09 18:49:24

标签: c# entity-framework linq asp.net-core

我在我的项目中使用.NETCore和EF Core。我无法使用DateTimes查询带有表达式的项目。

return _context.table
       .Where( x=> x.CPULoad > 90 && X.Date >= DateTime.Now.AddMinutes(-5));

CPULoad工作正常,但日期时间比较输出如下。

The LINQ expression '(([x].Date >= DateTime.Now.AddMinutes(-5))' could not be translated and will be evaluated locally.

有人可以解释我做错了什么吗?提前谢谢!

1 个答案:

答案 0 :(得分:7)

试试这个......

var compareDate = DateTime.Now.AddMinutes(-5);
return _context.table
    .Where( x=> x.CPULoad > 90 && X.Date >= compareDate);

基本上这里的问题是实体框架不知道如何将DateTime.Now.AddMinutes(-5)转换为SQL,因此您需要获取该值,然后将其传递给实体框架。