使用 EF Code First 并给定一个包含列表的实体,我怎样才能急切地加载该实体的整个对象图:
例子:
public class Foo
{
public int Id { get; set; }
public List<BarBase> Bars { get; set; }
}
public class BarBase
{
public int Id { get; set; }
public string Text { get; set; }
}
public class BarTypeA : BarBase
{
public List<Baz> Bazes { get; set; }
}
public class BarTypeB : BarBase
{
public List<Quux> Quuces { get; set; } { get; set; }
}
如果BarBase
不是可以包含多个不同子类型实例的基类,我可以使用
.Include("Bars").Include("Bars.Bazes")
如果我尝试
.Include("BarBase").Include("BarBase.Bazes").Include("BarBase.Quuces")
我得到错误
指定的包含路径无效。EntityType 'BarBase' 没有声明名为 'Bazes' 的导航属性。
但是如何处理Bars
可能包含不同具体类型的情况,并且我想急切地加载所有这些实例,包括List<T>
这些具体类型中包含的实例?