首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将ms sql "group by“查询转换为linq to sql

将ms sql "group by“查询转换为linq to sql
EN

Stack Overflow用户
提问于 2009-02-16 19:47:09
回答 3查看 1.6K关注 0票数 1

我有两个表,products和categories。如何将以下sql查询转换为linq格式?

代码语言:javascript
运行
复制
select c.Name, c.DisplayName, count(p.id) from categories as c
LEFT join products as p on p.categoryId = c.id
group by c.Name, c.DisplayName

某些类别中将包含0个产品,因此左连接很重要

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-02-16 20:45:06

如果您正确地定义了模型中的关系,那么customers表应该与所有产品相关联,这样您就可以使用'c.Products‘访问与客户相关联的产品。然后应该能够简单地写出这样的代码:

代码语言:javascript
运行
复制
  var q = 
    from c in categories
    select new { c.Name, c.DisplayName, Count = c.Products.Count() }

在T。

票数 2
EN

Stack Overflow用户

发布于 2009-02-16 20:47:27

代码语言:javascript
运行
复制
dc.categories
.Select(c => new
{
  Name = c.Name,
  DisplayName = c.DisplayName,
  TheCount = c.Products.Count()
}

如果你想在其他情况下进行左连接,请查看"group join“。

代码语言:javascript
运行
复制
dc.categories
.GroupJoin(dc.products,
  c => c.id,
  p => p.categoryid,
  (c, g) => new { Name = c.Name, TheCount = g.Count() }
);
票数 0
EN

Stack Overflow用户

发布于 2009-09-04 18:53:42

以显示基于的分组。

代码语言:javascript
运行
复制
 var q =   from c in db.categories
    group c by new {c.Name , c.DisplayName} into alias
    select new { alias.Name, 
                 alias.DisplayName, 
                 Count = alias.Count(p => p.id) 
                }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/554349

复制
相关文章

相似问题

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