Pergunta

Usando LINQ to SQL, tenho uma classe Order com uma coleção de OrderDetails.O Order Details possui uma propriedade chamada LineTotal que obtém Qnty x ItemPrice.

Sei fazer uma nova consulta LINQ do banco de dados para encontrar o total do pedido, mas como já tenho a coleção de OrderDetails do BD, existe um método simples para retornar a soma do LineTotal diretamente da coleção?

Gostaria de adicionar o total do pedido como uma propriedade da minha classe Order.Imagino que poderia percorrer a coleção e calcular a soma com um para cada Order.OrderDetail, mas acho que existe uma maneira melhor.

Foi útil?

Solução

Você pode fazer LINQ to Objects e usar LINQ para calcular os totais:

decimal sumLineTotal = (from od in orderdetailscollection
select od.LineTotal).Sum();

Você também pode usar expressões lambda para fazer isso, o que é um pouco "mais limpo".

decimal sumLineTotal = orderdetailscollection.Sum(od => od.LineTotal);

Você pode então conectar isso à sua classe Order assim, se quiser:

Public Partial Class Order {
  ...
  Public Decimal LineTotal {
    get {
      return orderdetailscollection.Sum(od => od.LineTotal);
    }
  }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top