Pregunta

Usando LINQ to SQL, tengo una clase Order con una colección de OrderDetails.Los detalles del pedido tienen una propiedad llamada LineTotal que obtiene Cantidad x Precio del artículo.

Sé cómo hacer una nueva consulta LINQ de la base de datos para encontrar el total del pedido, pero como ya tengo la colección de OrderDetails de la base de datos, ¿existe un método simple para devolver la suma del LineTotal directamente desde la colección?

Me gustaría agregar el total del pedido como propiedad de mi clase de Pedido.Me imagino que podría recorrer la colección y calcular la suma con a para cada Order.OrderDetail, pero supongo que hay una manera mejor.

¿Fue útil?

Solución

Puede hacer LINQ to Objects y usar LINQ para calcular los totales:

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

También puedes usar expresiones lambda para hacer esto, lo cual es un poco más "limpio".

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

Luego puedes conectar esto a tu clase de Orden de esta manera si lo deseas:

Public Partial Class Order {
  ...
  Public Decimal LineTotal {
    get {
      return orderdetailscollection.Sum(od => od.LineTotal);
    }
  }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top