我有两个表,products和categories。如何将以下sql查询转换为linq格式?
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个产品,因此左连接很重要
发布于 2009-02-16 20:45:06
如果您正确地定义了模型中的关系,那么customers表应该与所有产品相关联,这样您就可以使用'c.Products‘访问与客户相关联的产品。然后应该能够简单地写出这样的代码:
var q =
from c in categories
select new { c.Name, c.DisplayName, Count = c.Products.Count() }在T。
发布于 2009-02-16 20:47:27
dc.categories
.Select(c => new
{
Name = c.Name,
DisplayName = c.DisplayName,
TheCount = c.Products.Count()
}如果你想在其他情况下进行左连接,请查看"group join“。
dc.categories
.GroupJoin(dc.products,
c => c.id,
p => p.categoryid,
(c, g) => new { Name = c.Name, TheCount = g.Count() }
);发布于 2009-09-04 18:53:42
以显示基于的分组。
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)
}https://stackoverflow.com/questions/554349
复制相似问题