我有两个名为:
的表Categories
Posts
在类别中我保存我的类别:
CategoryID CategoryTitle
1 HTML
2 CSS
在帖子中我有这样的数据:
PostTitle PostContent CategoryID
现在我想列出每个类别的帖子计数的类别 你能给我一个查询吗? 我使用了这个查询:
var cats = (from c in contecxt.Categories select new {
CategoryID,
CategoryTitle
Count = (from p in context.Posts where p.CategoryID == c.CategoryTitle).Count()
}).ToList();
答案 0 :(得分:3)
如果您正在使用EF,并且正确设置了外键关系,那么您的Category
对象上的导航属性应该是Post
的集合。在这种情况下,您需要做的就是使用LINQ的扩展方法语法:
var cats = context.Categories.Select(cat =>
new { cat.CategoryID, cat.CategoryTitle, PostCount = cat.Posts.Count() })
答案 1 :(得分:0)
你可以试试这个 -
var cats = ctx.Categories.GroupBy(item => item.CategoryTitle)
.Select(g => new
{
CategoryTitle = g.Key,
Count = g.Sum(x => x.Posts.Count())
}
);