gpt4 book ai didi

c# - 将 WITH ROLLUP SQL 语句转换为 LINQ

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:01 27 4
gpt4 key购买 nike

我需要帮助将语句从 LINQ 转换为 SQL

SQL

SELECT MONTH(ind_receita.lad_ins_date) as 'Month', SUM(ind_receita.valor) as Monthly_Value
FROM ind_receita
WHERE YEAR(ind_receita.lad_ins_date) = 2014
GROUP BY MONTH(ind_receita.lad_ins_date)
WITH ROLLUP

我知道如何在 LINQ 中执行所有语句,但我对 WITH ROLLUP

有一些疑问

LINQ

var query = (from p in _repositorio.GetReceitas()
where p.DataHoraCriacaoRegistro.Year == 2014
group p by new { p.DataHoraCriacaoRegistro.Month } into grp
select new ReceitaPorGrupoProduto
{
// Column with the alias 'Monthly_Value'
ValorReceita = grp.Sum(p => p.Valor)

// Column with the alias 'Month'
DataHora = grp.Key.Month
}).ToList();

但是如何将 WITH ROLLUP 放入我的 LINQ 中?

Rollup 只会给我一个累加器,所以,如果我们可以在不为 LINQ 制作 ROLLUP 语句的情况下做到这一点,那就没问题。

最佳答案

这里提供了一个非常有趣的解决方案

https://blogs.msdn.microsoft.com/mitsu/2007/12/21/playing-with-linq-grouping-groupbymany/

它描述了如何通过几个属性来执行groupbby。即:

var result = customers.GroupByMany(c => c.Country, c => c.City);

因此,您将获得可以简单地转换为平面列表的层次结构。我希望你能在你的案例中采用它。

关于c# - 将 WITH ROLLUP SQL 语句转换为 LINQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25729081/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com