Linq to SQL упорядочить по совокупности - PullRequest
2 голосов
/ 14 декабря 2009

У меня очень простая проблема группировки и объединения в LINQ to SQL, которую я просто не могу понять, и это сводит меня с ума.

Я упростил вещи в этом примере:

класс Customer { общедоступный идентификатор Guid; публичное строковое имя; }

класс Order { public Guid Customer_Id; государственная двойная сумма; }

Как получить список заказанных клиентов по количеству заказов? И на общую сумму, которую они приобрели за?

Ответы [ 3 ]

3 голосов
/ 14 декабря 2009
return dataContext.Customers.OrderBy(cust => cust.Orders.Count)
    .ThenBy(cust => cust.Orders.Sum(order => order.Amount))
    .ToList();
1 голос
/ 14 декабря 2009
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;
0 голосов
/ 14 декабря 2009

По количеству заказов:

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);
...