Usuário com melhor resposta
Somar Colunas Lambda expression

Pergunta
-
Olá Pessoal , estou tentando somar 3 colunas de uma mesma tabela em uma expressão lambda mas não estou conseguindo.
Alguém tem algum exemplo ?
Tks.
- Editado _Manigold_ segunda-feira, 10 de março de 2014 16:47
Respostas
-
Vc deve agrupar os dados e depois somar por exemplo :
var r = db.TB1.GroupBy(g => new { g.ID, g.IDADE, g.NUMERO }) .Select(s => new { SOMA = s.Sum(i => i.ID) + s.Sum(i => i.IDADE) + s.Sum(i => i.NUMERO) }).ToList();
- Marcado como Resposta _Manigold_ terça-feira, 8 de abril de 2014 13:19
-
Entendi mais simples então faça direto na sua variavel query :
var query = db.TB1.GroupBy( g => new { g.ID, g.IDADE, }) .Select(s => new { SOMA = s.Sum(i => i.ID) + s.Sum(i => i.IDADE), }).ToList(); int totalSoma = query.Sum(s => s.SOMA.Value); int? somaUmaLinha = query.Find(i => i.SOMA > 0).SOMA.Value;
Veja que totalSoma tem toda a soma e somaumalinha apenas a 1 linha.Boa Sorte.
- Marcado como Resposta _Manigold_ terça-feira, 8 de abril de 2014 13:19
Todas as Respostas
-
-
-
Oi
Isso
var query = p from table select new {ID = p.ID, TOTAL = CAMPOA + CAMPOB + CAMPOC}
e
Isso
var query = lst.Select(p => new {ID = p.ID, TOTAL = CAMPOA + CAMPOB + CAMPOC})
Só são maneiras diferentes de expressar o mesmo comando. Vai de gosto e de legibilidade do código.
-
Vc deve agrupar os dados e depois somar por exemplo :
var r = db.TB1.GroupBy(g => new { g.ID, g.IDADE, g.NUMERO }) .Select(s => new { SOMA = s.Sum(i => i.ID) + s.Sum(i => i.IDADE) + s.Sum(i => i.NUMERO) }).ToList();
- Marcado como Resposta _Manigold_ terça-feira, 8 de abril de 2014 13:19
-
-
Olá Daniel, minha duvida agora é a seguinte eu preciso dar um loop para percorrer as informaçoes ?
public CardapioModelo Detalhe(int codigo)
{
// Busco toda a informação do banco
using (var bd = new BancoEntities())
{
var dados = new CardapioModelo();
var query = bd.tbl_Cardapio.GroupBy(g => new
{
g.Semana,
g.Cafe_Manha,
g.Ds_Cafe_Manha
})
.Select(s => new
{
SOMA = s.Sum(i => i.Calorias_Manha) + s.Sum(i => i.Calorias_Jantar) + s.Sum(i => i.Calorias_Almoco)
}).ToList();
foreach (var item in query)
{
dados.total = item.SOMA;
}
return dados;
}
}Essa é a maneira correta ?
Muito obrigado.
- Editado _Manigold_ segunda-feira, 10 de março de 2014 17:31
-
Não vc pode retornar diretamente no seu método usando o dynamic ou criando uma classe e retornando-a como um List<Classe> , o que vc deseja fazer com esses dados, vc deseja retornar os dados da tabela inteira mesmo ? e usar em um grid algo do tipo?
-
-
Entendi mais simples então faça direto na sua variavel query :
var query = db.TB1.GroupBy( g => new { g.ID, g.IDADE, }) .Select(s => new { SOMA = s.Sum(i => i.ID) + s.Sum(i => i.IDADE), }).ToList(); int totalSoma = query.Sum(s => s.SOMA.Value); int? somaUmaLinha = query.Find(i => i.SOMA > 0).SOMA.Value;
Veja que totalSoma tem toda a soma e somaumalinha apenas a 1 linha.Boa Sorte.
- Marcado como Resposta _Manigold_ terça-feira, 8 de abril de 2014 13:19