我有一个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
第二步,你可以创建你想要的组