微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 LINQ 中通过重写分组时的 SQL 案例

如何解决在 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 举报,一经查实,本站将立刻删除。