Entity framework 使用EF 4.1查询“多”关系的正确方法是什么?

Entity framework 使用EF 4.1查询“多”关系的正确方法是什么?,entity-framework,entity-framework-4.1,Entity Framework,Entity Framework 4.1,模型如下所示: public class User { public int Id public virtual ICollection<Tag> FollowingTags {get;set;} } public class Tag { public int Id public virtual ICollection<User> Followers {get;set;} public virtual ICollection<

模型如下所示:

public class User
{
    public int Id
    public virtual ICollection<Tag> FollowingTags {get;set;}
}

public class Tag
{
    public int Id
    public virtual ICollection<User> Followers {get;set;}
    public virtual ICollection<Post> Posts {get;set;}
}

public class Post    {
    public int Id
    public virtual ICollection<Tag> Tags {get;set;}
}
这意味着从用户到帖子有两个多对多关系,也许可以称之为M:M:M关系

现在,如果我想找到所有带有某个用户跟随的标签的帖子。我想知道EF4.1的最佳实践是什么

如果使用ADO.NET,我认为连接两个关节表是有效的方法,但关节表隐藏在EF中,那么如何做呢?我知道一些解决方案,但是性能不好,因为生成的SQL不够好。所以我要求一个好的查询来获得好的性能


谢谢大家!

尝试在查询中使用include修饰符,如:

context ctx=new context//context是本例中的实体上下文

var query=来自ctx.posts.includetags.users中的p 其中p.tags.Followers.ID=TargetUserID


这应该包括它

p标签是一个集合,不能包含.Followers等等。
(from p in db.Posts
from t in p.Tags
from f in t.Followers
where f.Id == id
select p).Distinct()