Asp.net 在实体框架的类别中获取具有post计数的类别

Asp.net 在实体框架的类别中获取具有post计数的类别,asp.net,linq,entity-framework,Asp.net,Linq,Entity Framework,我有两张桌子,叫做: Categories Posts 在类别中,我保存我的类别,如: CategoryID CategoryTitle 1 HTML 2 CSS 在帖子中,我有如下数据: PostTitle PostContent CategoryID 现在我想列出我的类别和每个类别的帖子数量 你能告诉我怎么做吗? 我使用了这个查询: var cats = (from c in contecxt.Categories select new {

我有两张桌子,叫做:

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();
你可以试试这个-

var cats = ctx.Categories.GroupBy(item => item.CategoryTitle)
                        .Select(g => new
                        {
                            CategoryTitle = g.Key,
                            Count = g.Sum(x => x.Posts.Count())
                        }
                                      );
你可以试试这个-

var cats = ctx.Categories.GroupBy(item => item.CategoryTitle)
                        .Select(g => new
                        {
                            CategoryTitle = g.Key,
                            Count = g.Sum(x => x.Posts.Count())
                        }
                                      );
你可以试试这个-

var cats = ctx.Categories.GroupBy(item => item.CategoryTitle)
                        .Select(g => new
                        {
                            CategoryTitle = g.Key,
                            Count = g.Sum(x => x.Posts.Count())
                        }
                                      );
你可以试试这个-

var cats = ctx.Categories.GroupBy(item => item.CategoryTitle)
                        .Select(g => new
                        {
                            CategoryTitle = g.Key,
                            Count = g.Sum(x => x.Posts.Count())
                        }
                                      );

如果您正在使用EF,并且已正确设置外键关系,那么您的
类别
对象上应该有一个导航属性,它是
Post
的集合。在这种情况下,您只需使用LINQ的扩展方法语法执行以下操作:

var cats = context.Categories.Select(cat => 
              new { cat.CategoryID, cat.CategoryTitle, PostCount = cat.Posts.Count() })

如果您正在使用EF,并且已正确设置外键关系,那么您的
类别
对象上应该有一个导航属性,它是
Post
的集合。在这种情况下,您只需使用LINQ的扩展方法语法执行以下操作:

var cats = context.Categories.Select(cat => 
              new { cat.CategoryID, cat.CategoryTitle, PostCount = cat.Posts.Count() })

如果您正在使用EF,并且已正确设置外键关系,那么您的
类别
对象上应该有一个导航属性,它是
Post
的集合。在这种情况下,您只需使用LINQ的扩展方法语法执行以下操作:

var cats = context.Categories.Select(cat => 
              new { cat.CategoryID, cat.CategoryTitle, PostCount = cat.Posts.Count() })

如果您正在使用EF,并且已正确设置外键关系,那么您的
类别
对象上应该有一个导航属性,它是
Post
的集合。在这种情况下,您只需使用LINQ的扩展方法语法执行以下操作:

var cats = context.Categories.Select(cat => 
              new { cat.CategoryID, cat.CategoryTitle, PostCount = cat.Posts.Count() })

当您可以调用posts计数时,根本不需要使用Sum()。当您可以调用posts计数时,根本不需要使用Sum()。当您可以调用posts计数时,根本不需要使用Sum()。当您可以调用posts计数时,根本不需要使用Sum()。不幸的是,我在表中没有关系:-(你为什么不呢?在我看来,你的分类和帖子是一对多的。你确定你在某个时候没有在它们之间创建外键吗?如果没有,你需要一个。你知道我没有使用外键,我使用的是查询,但你说的时候我创建了外键,很好用,非常感谢兄弟。不幸的是,我没有在表中有关系:-(你为什么不呢?在我看来,你的分类和帖子是一对多的。你确定你在某个时候没有在它们之间创建外键吗?如果没有,你需要一个。你知道我没有使用外键,我使用的是查询,但你说的时候我创建了外键,很好用,非常感谢兄弟。不幸的是,我没有在表中有关系:-(你为什么不呢?在我看来,你的分类和帖子是一对多的。你确定你在某个时候没有在它们之间创建外键吗?如果没有,你需要一个。你知道我没有使用外键,我使用的是查询,但你说的时候我创建了外键,很好用,非常感谢兄弟。不幸的是,我没有在表中有关系:-(你为什么不呢?在我看来,你的分类和帖子是一对多的。你确定你在某个时候没有在它们之间创建外键吗?如果没有,你需要一个。你知道我没有使用外键,我使用的是查询,但你说的时候我创建了外键,它工作得很好,非常感谢兄弟。