Fizemos várias consultas semelhantes a essa ao decorrer do curso e não foi necessário utilizar o método Single(). Por que agora foi preciso utilizar?
Fizemos várias consultas semelhantes a essa ao decorrer do curso e não foi necessário utilizar o método Single(). Por que agora foi preciso utilizar?
Olá Maycon
O método Single()
é utilizado quando esperamos que a consulta retorne apenas um resultado. No caso do exemplo que você mencionou, a consulta está agrupando todas as notas fiscais em um único grupo e calculando o valor máximo, mínimo e médio. Como sabemos que a consulta retornará apenas um grupo, podemos utilizar o método Single()
para obter esse resultado.
No código que você compartilhou, a consulta está sendo realizada da seguinte forma:
var vendas = (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();
O método Single()
é aplicado após a consulta, e retorna o único resultado esperado. Nesse caso, a variável vendas
será um objeto com as propriedades maiorVenda
, menorVenda
e vendaMedia
, que representam respectivamente o valor máximo, mínimo e médio das notas fiscais.
Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, é só me dizer. Bons estudos!
Espero ter ajudado e bons estudos!