none
Group by Linq com duas tabelas RRS feed

  • Pergunta

  • Bom dia a todos!

    Estou trabalhando com Linq e não tenho muito conhecimento nesse padrão.

    Fiz um select normal com um group by

    SELECT dbo.OPERADORA.OPE_NOME,SUM(dbo.CHIP.OPE_ID_OPERADORA) AS TOTAL  FROM dbo.CHIPINNER JOIN dbo.OPERADORA ON dbo.OPERADORA.OPE_ID_OPERADORA = dbo.CHIP.OPE_ID_OPERADORAGROUP BY dbo.OPERADORA.OPE_NOME

    E tenho os registros de forma correta.

    Agora esta com dificuldades de passar isso para Linq

      var query = from c in context.CHIP                        join o in context.OPERADORA on c.OPE_ID_OPERADORA equals o.OPE_ID_OPERADORA                        group o by (o.OPE_NOME) into Operadora                        select new { c, Operadora };

    e ele esta dando erro no "c"   do select new { c, Operadora };, passando que não existe no context.

    Alguém poderia me ajudar?

    quinta-feira, 27 de setembro de 2012 13:26

Todas as Respostas

  • E ae cara, blz?

    Se você fizer desta forma não resolve?

    var query = from c in context.CHIP join o in context.OPERADORA on c.OPE_ID_OPERADORA

    equals o.OPE_ID_OPERADORA group o by (o.OPE_NOME) into Operadora select Operadora;



    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS


    quinta-feira, 27 de setembro de 2012 17:18
  • Janderson, muito obrigado pela resposta.

    Nessa parte do código não tem mais erros.


                var query = from c in context.CHIP                        join o in context.OPERADORA on c.OPE_ID_OPERADORA                            equals o.OPE_ID_OPERADORA                        group o by (o.OPE_NOME) into Operadora                        select Operadora;


    Porem estou com o seguinte erro:

    Error 27 'System.Linq.IGrouping<string,SecuritySystem.Dimas.Model.OPERADORA>' does not contain a definition for 'Operadora' and no extension method 'Operadora' accepting a first argument of type 'System.Linq.IGrouping<string,SecuritySystem.Dimas.Model.OPERADORA>' could be found (are you missing a using directive or an assembly reference?) C:\Users\leandro.gonsales\Documents\Visual Studio 2010\Projects\Dimas.PAG\SecuritySystem.Dimas.BLL\ChipServicos.cs 115 31 SecuritySystem.Dimas.BLL

    Na seguinte parte do código

                foreach (var item in query)            {                chip.Add(item.Operadora);            }

    Esta com o erro na linha


                    chip.Add(item.Operadora);

    quinta-feira, 27 de setembro de 2012 17:25
  • No seu código chip é uma lista de que?

    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quinta-feira, 27 de setembro de 2012 17:46
  • é uma lista de uma tabela.
    quinta-feira, 27 de setembro de 2012 18:41
  • É uma lista de uma classe certo?

    Acho que você tem que fazer algo parecido com isto:

    chip.Add(new Operadora(item.Operadora));

    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quinta-feira, 27 de setembro de 2012 18:43