Вопрос
Используя 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);
}
}
}