使用EntityFramework Core和linq to entities将服务器端的日期与今天进行比较

Vi1*_*100 6 entity-framework-core asp.net-core

我正在尝试将一些代码从EF6转换为EF Core 1 RC1,并且我仍然停留在我需要使用linq在服务器端将日期与当前日期进行比较的时刻.查询的另一部分是获取这些日期的星期几.EF6代码使用完全限定为System.Data.Entity.SqlServer.SqlFunctions的SqlFunctions类,即afaik尚未移植到新版本.什么是推荐的方法或替代方案,使其在EF Core上运行?

原始linq to entities查询是这样的:

var result = db.Logs.Select(log => new {
      Date = log.Date,
      Rel = System.Data.Entity.SqlServer.SqlFunctions.DateDiff("day", log.Date, System.Data.Entity.SqlServer.SqlFunctions.GetDate()),
      Dow = System.Data.Entity.SqlServer.SqlFunctions.DatePart("dw", log.Date) - 1 
});
Run Code Online (Sandbox Code Playgroud)

Tho*_*mas 6

目前,不支持Sql Functions,这是打开的问题

提供与标准SQL操作相对应的标准LINQ方法(类似于EF6的DbFunctions)

以下是您可以尝试的一些替代方案: