Linq to sql Linq到SQL按聚合排序
在LINQtoSQL中,我有一个非常简单的分组和聚合问题,我就是搞不懂,这让我抓狂 我将事情简化为以下示例: 类客户{ 公共Guid Id; 公共字符串名称; } 阶级秩序{ 公共Guid客户Id; 公共双倍金额; } 如何根据客户的订单数量获取客户订单列表?以及根据订单数量,他们购买的总金额:Linq to sql Linq到SQL按聚合排序,linq-to-sql,aggregate,Linq To Sql,Aggregate,在LINQtoSQL中,我有一个非常简单的分组和聚合问题,我就是搞不懂,这让我抓狂 我将事情简化为以下示例: 类客户{ 公共Guid Id; 公共字符串名称; } 阶级秩序{ 公共Guid客户Id; 公共双倍金额; } 如何根据客户的订单数量获取客户订单列表?以及根据订单数量,他们购买的总金额: return dataContext.Customers.OrderBy(cust => cust.Orders.Count) .ThenBy(cust => cust.Orders
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);
哇!其中一些答案过于复杂。如果您愿意,您可以通过链接几个简单的方法在一行中完成这项工作。
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;