LINQ to Entities - 使用代码优先的多对多查询

时间:2011-05-16 16:48:05

标签: entity-framework entity-framework-4 ef-code-first entity-framework-4.1

让我说我有这个:

    public partial class AccessMask
{
    public int AccessMaskID { get; set; }
=== bla bla bla ===

    public virtual ICollection<Role> Role { get; set; }
}

    public partial class Role
{

    public int RoleID { get; set; }
    === bla bla bla==

    public virtual ICollection<Forum> Forum { get; set; }
    public virtual ICollection<Rank> Rank { get; set; }
    public virtual ICollection<User> User { get; set; }
    public virtual ICollection<AccessMask> AccessMask { get; set; }
}

现在是个大问题。如何在这两者之间进行查询?你可能会发现这是多对多的关系。我想要做的是加入这个并获得与角色相关的访问掩码。 bla bla bla-一些完全无关的随机属性。

UPDATE!

我知道我可以使用:     包括() 但是将它用于大量的查询......将是一个坏主意。因为我有很多看似相似的多对多关系。 或者我是否必须简单地重新设计我的模型,加入更实际的加入实体的东西?

1 个答案:

答案 0 :(得分:3)

对于检索数据,它的工作方式与任何其他导航属性相同:

Role myRole = context.Where(x=>x.Id=123).FirstOrDefault();
ICollection<AccessMask> masks = myRole.AccessMask;

但是,我在获取多对多数据时非常困难。