c# - 比较 EF Core Linq 查询中的日期时间

标签 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.

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

最佳答案

试试这个...

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

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

关于c# - 比较 EF Core Linq 查询中的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42144631/

相关文章:

c# - 如何在母版页的第一个页面加载中只调用一次方法

c# - 如何使用括号动态创建 "System.Linq.Expression"表达式

c# - 在 nHibernate Linq 语句中放置 Fetch 或 FetchMany 的最佳顺序

c# - 在 linq 查询中调用自定义方法

c# - 网络核心: Entity Framework ThenInclude with Projection Select

c# - C#中的并行编程

c# - 检索当前文化的所有大写字母

c# - 你能在一个衬里中获得最大长度的 String.Split 吗?

c# - Entity Framework 数据库生成错误

c# - 如何根据 rowversion/timestamp 值查询 Code First 实体?