【发布时间】:2017-04-14 10:53:39
【问题描述】:
假设我们有如下三个 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 关键字进行测试(我不想删除它)但它也不起作用。
【问题讨论】:
-
如果你在 VS 中为
Include方法执行Go To Definition,你会发现一个完整的帮助主题描述了不同的Include场景。基本上你需要使用Selects 向下导航。 -
你可以使用其他的Include。将字符串作为参数的那个。然后你可以这样做:
Include("Items.Specifications")
标签: c# asp.net asp.net-mvc entity-framework