Вопрос

Используя LINQ to SQL, у меня есть класс Order с коллекцией OrderDetails.В деталях заказа есть свойство с именем LineTotal, которое получает количество x ItemPrice.

Я знаю, как выполнить новый запрос LINQ к базе данных, чтобы найти общее количество заказов, но поскольку у меня уже есть коллекция OrderDetails из базы данных, есть ли простой способ вернуть сумму LineTotal непосредственно из коллекции?

Я бы хотел добавить сумму заказа как свойство моего класса Order.Я полагаю, я мог бы перебрать коллекцию и вычислить сумму с помощью a для каждого заказа.OrderDetail, но я предполагаю, что есть способ получше.

Это было полезно?

Решение

Вы можете выполнять LINQ для объектов и использовать LINQ для вычисления итогов:

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

Вы также можете использовать для этого лямбда-выражения, которые немного "чище".

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

Затем вы можете подключить это к своему классу заказов следующим образом, если хотите:

Public Partial Class Order {
  ...
  Public Decimal LineTotal {
    get {
      return orderdetailscollection.Sum(od => od.LineTotal);
    }
  }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top