想象一下,我们有三个Dbset,如下所示:
Category
{
...
public virtual ICollection<Item> Items {get; set;}
...
}
Item
{
...
public virtual ICollection<Specification> Specifications{get; set;}
...
}
Specification
{
...
}
对于急切加载,我使用它:
Category cat = db.Categories.Include(c=> c.Items).FirstOrDefault(c=> c.Id == 1);
但现在的问题是
cat.Items[0].Specifications
是null
,我们怎样才能让它急切加载集合的子集合?
P.S。:我尝试删除virtual
关键字进行测试(我不想删除它),但它也没有用。
答案 0 :(得分:8)
{{1}}
答案 1 :(得分:8)
您也可以使用符号
db.Categories.Include("Items.Specifications")
注意它必须是一个字符串
答案 2 :(得分:0)
现在我们也可以使用:
db.Categories.Include(c => c.Items)
.ThenInclude(i => i.Specifications);