如何在实体框架中分组连接

本文关键字:连接 框架 实体 | 更新日期: 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();