Inquiridor
Group by Linq com duas tabelas

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?
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
- Editado Janderson Candido de Mattos 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);
-
-
-
É 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
- Sugerido como Resposta Janderson Candido de Mattos quinta-feira, 4 de outubro de 2012 11:32