首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq to SQL order by aggregate

Linq to SQL order by aggregate
EN

Stack Overflow用户
提问于 2009-12-14 19:15:10
回答 3查看 1.4K关注 0票数 2

我在LINQ to SQL中有一个非常简单的分组和聚合问题,我就是搞不明白,这让我抓狂。

我已将其简化为以下示例:

类Customer { public Guid Id;public String Name;}

类订单{公共Guid Customer_Id;公共双倍金额;}

如何获取按订单数排序的客户列表?他们购买的总金额是多少?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-14 19:26:10

代码语言:javascript
复制
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;
票数 1
EN

Stack Overflow用户

发布于 2009-12-14 19:22:17

代码语言:javascript
复制
return dataContext.Customers.OrderBy(cust => cust.Orders.Count)
    .ThenBy(cust => cust.Orders.Sum(order => order.Amount))
    .ToList();
票数 3
EN

Stack Overflow用户

发布于 2009-12-14 19:24:54

按订单数量:

代码语言:javascript
复制
var customers = (from c in db.Customers
                 select new 
                  {
                    c.Name, 
                    OrderCount = c.Orders.Count()
                  }).OrderBy(x => x. OrderCount);

按购买总额计算:

代码语言:javascript
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1900299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档