none
Como fazer um group by composto no Linq? RRS feed

  • Pergunta

  • Amigos,

     

    Tabela com 3 campos.

     

    idade,

    setor,

    sexo.

     

    Quero mostar a soma da idade agrupada por setor, separada por sexo.

     

    O select no banco é muito simples, apenas colocar uma virgula no group by, o que ficaria:

    SELECT
       SUM(idade), 
       setor,
       sexo
    FROM Funcionario
    GROUP BY setor, sexo
    

     

    Mas no linq está muito difícil reproduzir o group by composto.

    Alguma ajuda pra recompilar essa query em linq to entities?

     

    sexta-feira, 29 de outubro de 2010 16:48

Respostas

  • Consegui resolver.

     

    Dá pra fazer composto usando um by new:

     

    var agrupado = (from p in db.Funcionario
                     group p by new
                     {
                       p.setor,
                       p.sexo
                     } into n
                     select new
    {
                       idade = ((from y in n select y.idade).Sum()),
                       n.Key.setor,
                       n.Key.sexo
                     }).ToList();
    

     

     

    Fica ae a dica pra quem precisar!

    Valeu

    • Marcado como Resposta Levi Domingos sexta-feira, 29 de outubro de 2010 18:31
    sexta-feira, 29 de outubro de 2010 18:29