Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida na cláusula group nf by 1 into agrupado

1 - Usando a consulta abaixo, gostaria de entender um pouco melhor, o por quê do número um (1) na cláusula group by.

var venda = (from nf in contexto.NotasFiscais
                            group nf by 1 into agrupado
                            select new 
                            {
                                maiorVenda = agrupado.Max(nf => nf.Total),
                                menorVenda = agrupado.Min(nf => nf.Total),
                                vendaMedia = agrupado.Average(nf => nf.Total)

                            }).Single();
1 resposta
solução!

Olá, Ivanostik Lopes

Esse é um pequeno "truque" que usamos para podermos calcular valores agregados para toda a tabela de notas fiscais, sem agrupá-los.

Em uma consulta SQL Server, você pode calcular agregados sem agrupar:

SELECT
Max(Total) as maiorVenda,
Min(Total) as menorVenda,
Avg(Total) as vendaMedia
FROM NotasFiscais

Mas em LINQ isso não funciona. Precisamos agrupar por algo. Por isso usamos a constante 1 no group by. Note que poderia ser qualquer outra constante, como 2, 3, 987, "batatinha", etc.

Boa sorte e bons estudos!