是否有可能在没有导航属性的情况下查询多对多实体

时间:2013-02-14 14:36:16

标签: entity-framework-4

如果双方在代码中没有导航属性(ICollection)但存在关联,是否可以在多对多关系中创建连接查询?

也许以某种方式通过linq或实体SQL?

2 个答案:

答案 0 :(得分:0)

如果联结表是实体模型的一部分,您可以执行以下操作:

from a in db.AAntities
join ab in db.ABs // the junction class
     on a.Id equeals ab.IdA
join b in db.BEntitites
     on ab.IdB equals b.Id into bees
select new { A = a, Bees = bees }

将生成A实体及其相关B实体的列表。

答案 1 :(得分:0)

 public partial class User
    {

        public virtual int Id   {
            get { return _id; }
            set { _id = value; }
        }

        public virtual string Mail  {
            get { }
            set { _}
        }


        public virtual string Password  {
            get { }
            set { ; }
        }
}


 public partial class UserGroupNew
    {

        public virtual int Id   {
            get {  }
            set { }
        }


        public virtual string Name  {
            get {  }
            set { }
        }


        public virtual string Description   {
            get {  }
            set {  }
        }
}

这两个人的关系是多对多的。如果我可以拥有没有导航属性的模型并通过存储库类来管理关系,那将是很好的。 Junction类是可以的,但是最好的选择(如果可能的话)将在没有额外属性或类的情况下处理它。