SQL Case当在Group By中重写LINQ



我有一个SQL Server查询,我用c#用LINQ重写了这个查询。

在T-SQL查询中,有case when的group by。我如何在c#中重写查询?

GROUP BY CAST(ISNULL(EnrollmentDate, CreatedDate) AS DATE),
(
CASE 
WHEN ISNULL(AccountId, 0) = 0
THEN [UserId]
ELSE AcoountId
END
)

I tried this;

.GroupBy(t => new { (t.EnrollmentDate ?? t.CreatedDate).Date, })

但我不能重写的情况下,小组由。

可以添加一个准备步骤

你可以用(string, T)Tuple包裹你的对象。

Item1中,您将根据逻辑设置键所需的值:

CASE 
WHEN ISNULL(AccountId, 0) = 0
THEN [UserId]
ELSE AcoountId
END

第二步,你可以创建你想要的组

最新更新