2009-09-19 6 views
-1

고객 목록, 고객이 주문한 주문이 들어있는 두 번째 테이블 및 주문의 개별 항목이 포함 된 세 번째 테이블이 있습니다.검색 할 Linq 쿼리 : 고객, 주문 및 OrderLineItems

고객 이름, 주문 수 및이 고객이 주문한 모든 주문의 총 가치를 얻기 위해 Linq 쿼리를 사용하고 싶습니다.

다음 데이터를 가정 :

[Customers] 
CustomerId Name 
--------------------- 
1   Bob Smith 
2   Jane Doe 

[Orders] 
OrderId CustomerId 
--------------------- 
1  1 
2  1 
3  2 

[OrderLineItems] 
LineItemId OrderId UnitPrice Quantity 
-------------------------------------------- 
1   1  5   2 
2   1  2   3 
3   2  10   10 
4   2  4   2 
5   3  2   5 

나는 다음과 같은 결과를 싶습니다

Name  OrdersCount TotalValue 
-------------------------------------------- 
Bob Smith 2   124 
Jane Doe 1   10 

무엇이 결과를 얻을 수있는 LINQ 쿼리를 것입니까?

+0

개체에 linq2sql, EF 또는 linq를 의미하는지 지정할 수 있습니다. – AndreasN

+0

내 저장소로 Subsonic을 사용하고 쿼리하기 위해 Ling을 사용하고 있습니다. – desautelsj

답변

1

당신이 강력한 형식의 데이터 컨텍스트 당신이 추가 자유롭게 부분 클래스 고객을 가지고 가정하면,이 같은이 문제를 해결할 :

public partial class Customer { 

    public int NumberOfOrders { 
     get { return Orders.Count(); } 
    } 

    public int TotalValue { 
     get { return Orders.OrderLineItems.Sum(o => o.UnitPrice * o.Quantity); } 
    } 
} 

YourDataContext db = new YourDataContext(); 

var query = from c in db.Customers 
select new {c.Name, c.NumberOfOrders, 
c.TotalValue} 

이 가진 새로운 익명 형식을 투사 할 것을 요청한 데이터