使用EntityFramework Core和linq to entities將服務器端的日期與今天進行比較

asp.net-core entity-framework-core

我正在嘗試將一些代碼從EF6轉換為EF Core 1 RC1,並且我仍然停留在需要使用linq在服務器端將日期與當前日期進行比較的時刻。查詢的另一部分是獲取這些日期的星期幾。 EF6代碼使用完全限定為System.Data.Entity.SqlServer.SqlFunctions的SqlFunctions類,即afaik尚未移植到新版本。什麼是推薦的方法或替代方案,以保持這在EF核心上工作?

原始的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 
});

一般承認的答案

目前,不支持Sql Functions,這是打開的問題

提供與標準SQL操作相對應的標準LINQ方法(類似於EF6的DbFunctions)

您可以嘗試以下一些替代方案:



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow