我在LINQ to SQL中有一個非常簡單的分組和聚集問題,我無法弄清楚,這讓我很生氣。Linq to SQL order by aggregate
我已經簡化到的東西這個例子:
一流的客戶{ 公衆的Guid標識; public String Name; }
class Order { public Guid Customer_Id; public double金額; }
我如何獲得按照訂單數量排列的客戶清單?他們購買的總金額是多少?
我在LINQ to SQL中有一個非常簡單的分組和聚集問題,我無法弄清楚,這讓我很生氣。Linq to SQL order by aggregate
我已經簡化到的東西這個例子:
一流的客戶{ 公衆的Guid標識; public String Name; }
class Order { public Guid Customer_Id; public double金額; }
我如何獲得按照訂單數量排列的客戶清單?他們購買的總金額是多少?
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;
return dataContext.Customers.OrderBy(cust => cust.Orders.Count)
.ThenBy(cust => cust.Orders.Sum(order => order.Amount))
.ToList();
通過訂單號:
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);
哇...一些這些答案都是高度過於複雜。如果你願意,你可以通過鏈接幾個簡單的方法在一行中完成。 – 2009-12-14 11:37:50