【问题标题】:LINQ to Entities - Many-To-Many queries with code-firstLINQ to Entities - 代码优先的多对多查询
【发布时间】:2011-05-16 16:48:05
【问题描述】:

假设我有这个:

    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- 一些完全不相关的随机属性。

更新!

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

【问题讨论】:

  • 提示:简化代码并去掉与 m-m 问题无关的属性

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


【解决方案1】:

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

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

但是,我在保存多对多数据方面经历了一段非常艰难的时期。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 2012-03-25
    • 2015-08-08
    • 1970-01-01
    • 2011-05-14
    • 2011-04-12
    • 2012-01-15
    • 1970-01-01
    相关资源
    最近更新 更多