首页 > 解决方案 > EF Core 2.2 与 oracle DateTime.UtcNow

问题描述

我在 .net Core 3.0、EF Core 2.2 和带有数据库的 Oracle 中有一个 api。我知道这是一种不好的做法,查询 linq 如下:

await db.Tickets.Where(t => t.x== x1 && t.DATE>
      DateTime.UtcNow).ToListAsync();

正确的形式是这样的:

DateTime dateUtc = DateTime.UtcNow; 

await db.Tickets.Where(t => t.x==
      x1 && t.DATE> dateUtc ).ToListAsync();

但我不知道为什么 EF 将查询翻译为:

SELECT table.x FROM table WHERE ((table.x = :locals1_PlateNumber_0) AND (table.DATE > SYSTIMESTAMP))

为什么 SYSTIMESTAMP 而不是 SYS_EXTRACT_UTC(LOCALTIMESTAMP) (例如)?

有人有同样的问题吗?

非常感谢

更新:实体的类型是可以为空的日期时间

标签: c#oracleentity-framework.net-core

解决方案


推荐阅读