2009-12-14 3 views
2

나는 LINQ to SQL에서 매우 단순한 그룹화 및 집계 문제를 겪었습니다.집계에 의한 Linq to SQL 순서

나는이 예제로 간단한 일을했습니다 :

클래스 고객 { 공공의 GUID 아이디; public String Name; }

클래스 주문 { public Guid Customer_Id; 공개 double 금액; }

주문한 주문수로 주문한 고객 목록을 얻으려면 어떻게해야합니까? 그리고 그들이 구입 한 총 금액에 대해서? 주문 번호로

+0

와우는 ...이 답변 중 일부는 복잡한을 통해 매우이다. 원한다면 몇 가지 간단한 방법을 연결하여 한 줄에서이 작업을 수행 할 수 있습니다. –

답변

1
var qry1 = from c in db.Customers 
      join o in db.Orders on c.Id equals o.Customer_Id into orders 
      orderby orders.Count() 
      select c; 

var qry2 = from c in db.Customers 
      join o in db.Orders on c.Id equals o.Customer_Id into orders 
      orderby orders.Sum(o => o.Amount) 
      select c; 
3
return dataContext.Customers.OrderBy(cust => cust.Orders.Count) 
    .ThenBy(cust => cust.Orders.Sum(order => order.Amount)) 
    .ToList(); 
0

:

var customers = (from c in db.Customers 
       select new 
        { 
        c.Name, 
        OrderCount = c.Orders.Count() 
        }).OrderBy(x => x. OrderCount); 

총 금액으로 구입 :

var customers = (from c in db.Customers 
       select new 
        { 
        c.Name, 
        Amount = (from order in c.Orders 
           select order.Amount).Sum() 
        }).OrderBy(x => x.Amount);