如何解决在 LINQ 中通过重写分组时的 SQL 案例
我有一个 sql Server 查询,我使用 LINQ 在 c# 中重写了这个查询。
在 T-sql 查询中,有 group by
和 case when。如何在 C# 中重写查询?
GROUP BY CAST(ISNULL(EnrollmentDate,CreatedDate) AS DATE),(
CASE
WHEN ISNULL(AccountId,0) = 0
THEN [UserId]
ELSE AcoountId
END
)
我试过了;
.GroupBy(t => new { (t.EnrollmentDate ?? t.CreatedDate).Date,})
但是我不能在加入 group by 时重写案例。
解决方法
您可以添加准备步骤。
您可以用 Tuple
的 (string,T)
包裹您的对象。
在 Item1
中,您将根据逻辑设置键所需的值:
CASE
WHEN ISNULL(AccountId,0) = 0
THEN [UserId]
ELSE AcoountId
END
在第二步中,您可以根据需要创建组。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。