在查询EntitySet
的情况下(例如,多对多关系),是否可以访问父对象?
e.g
Thing thing = db.Things.First();
Widget widget = thing.Widgets.First();
// Let's assume that Widgets can have many things as well
// (i.e. widget.Things is possible)
widget.ParentThing // would return the same instance of thing used above
这可能吗?
答案 0 :(得分:4)
是否可以访问父对象
对于多对多,确实没有“父” - 有多个相关的对象。多对多通常使用导航属性建模:
public class Thing
{
public int ID {get; set;}
public virtual IEnumerable<Widget> Widgets {get; set;}
}
public class Widget
{
public int ID {get; set;}
public virtual IEnumerable<Thing> Things {get; set;}
}
如果你的模型没有这样的属性,那么另一种方法是回到上下文(如果你不再有上下文,则回到数据库):
var relatedThings = db.Things
.Where(t => t.Widgets.Any(w => ID == widget.ID));