如何在实体框架中分组连接
本文关键字:连接 框架 实体 | 更新日期: 2023-09-27 18:11:13
在我的项目中,我使用实体框架的代码优先方法。
我有两个表:
-
Tags
: Id, Name -
Post
: Id, Title, Body,List<tag>
Tags
每个帖子可以有一些标签,一些标签在几个帖子中重复,这些表之间的关系是多对多的。
public class post
{
public int Id { get; set; }
public int Title { get; set; }
public int Body { get; set; }
public ICollection<Tag> Tags { get; set; }
}
public class Tag
{
public int Id { get; set; }
public int Name { get; set; }
public ICollection<Post> Posts { get; set; }
}
我使用这段代码,但它是不正确的:
var tags = db.posts.GroupBy(x => x.tags.Select(c => c.name)).Take(10).ToList();
我想获得前10个标签,但是我做不到。
我想用EF做,don't Linq
我在网上搜索了,但没有找到任何类似的问题。
谢谢。
尝试:
var query = (from t in ctx.Tags.Include("Posts")
orderby t.Posts.Count() descending
select t).Take(10).ToList();