2008-09-15 6 views
67

LINQ to SQL을 사용하여 OrderDetails 컬렉션이있는 Order 클래스가 있습니다. Order Details에는 Qnty x ItemPrice를 얻는 LineTotal이라는 속성이 있습니다.컬렉션의 항목 합계

데이터베이스의 새 LINQ 쿼리를 수행하여 주문 합계를 찾는 방법을 알고 있지만 이미 DB의 OrderDetails 컬렉션을 가지고 있으므로 간단한 방법을 통해 LineTotal의 합계를 수집?

주문 총계를 주문 클래스의 속성으로 추가하고 싶습니다. 나는 컬렉션을 통해 반복하고 각 Order.OrderDetail에 대한 합계를 계산할 수 있다고 상상하지만 더 나은 방법이 있다고 생각합니다.

답변

151

당신은 합계를 계산하는 개체 및 이용 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); 
    } 
    } 
}