Entity Framework Core:如何在 Linq 中使用 DateDiff?

top*_*ool 3 sql linq entity-framework-core asp.net-core

我想在 EF Core 中创建一个查询,如下所示:

SELECT SUM(DATEDIFF(DAY, FromDate, ToDate)) AS Diff 
FROM Table1
Run Code Online (Sandbox Code Playgroud)

上述查询适用于 T-SQL - 如何在 Linq 中创建查询?

Net*_*age 5

使用DbFunctions,通过 访问EF.Functions,您可以调用DateDiffDay

var ans = from t in Table1
          group t by 1 into tg
          select tg.Sum(r => EF.Functions.DateDiffDay(r.FromDate, r.ToDate));
Run Code Online (Sandbox Code Playgroud)

My SQL to LINQ Recipe将来可能会帮助您解决一些翻译问题。

PS:正如@B12Toaster 所指出的,特定EF.Functions方法DataDiffDay是特定于提供程序的,并且特定于 MS SQL Server。