sql实体框架核心如何使用case when语句

fwzugrvs  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(374)

我正在从事一个asp.net核心3.1项目。我在sql中有一个类似的查询:

SELECT
    SUM(DATEDIFF(DAY,
            CASE WHEN FromDate < '2020-03-10' THEN '2020-03-10' ELSE FromDate END,
            CASE WHEN ToDate > '2020-03-20' THEN '2020-03-20' ELSE FromDate END) + 1) AS ddd
FROM
    leave_Tbl

但是我需要在efcore3.1中创建这个查询
我写了这个问题:

var query = _context.Leave_Tbl.Sum(p => EF.Functions.DateDiffDay(p.FromDate_DaysLeave, p.ToDate_DaysLeave));

但我不知道如何使用 case when 声明。

xvw2m8pv

xvw2m8pv1#

你可以这样做。

DateTime dt1 = DateTime.Now;
DateTime dt2 = DateTime.Now;
DateTime dt3 = DateTime.Now;
DateTime dt4 = DateTime.Now;
var query = _context.Leave_Tbl.Sum(p => EF.Functions.DateDiffDay(dt1 > dt2 ? dt3 : dt4, dt1 > dt2 ? dt3 : dt4));

为了简单起见,我刚选了这些日期。

相关问题