72

使用 LINQ to SQL,我有一个带有 OrderDetails 集合的 Order 类。Order Details 有一个名为 LineTotal 的属性,它获取 Qnty x ItemPrice。

我知道如何对数据库进行新的 LINQ 查询以查找订单总额,但是由于我已经从数据库中收集了 OrderDetails,是否有一种简单的方法可以直接从集合中返回 LineTotal 的总和?

我想将订单总额添加为我的 Order 类的属性。我想我可以遍历集合并为每个 Order.OrderDetail 计算总和,但我猜有更好的方法。

4

1 回答 1

161

您可以执行 LINQ to Objects 并使用 LINQ 计算总数:

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

您也可以使用 lambda 表达式来执行此操作,这有点“干净”。

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

然后,如果需要,您可以像这样将其连接到您的 Order 类:

Public Partial Class Order {
  ...
  Public Decimal LineTotal {
    get {
      return orderdetailscollection.Sum(od => od.LineTotal);
    }
  }
}
于 2008-09-15T05:02:40.037 回答