EF:IQueryable不加载儿童

时间:2016-08-16 12:50:50

标签: c# sql entity-framework linq

我有一个父模型,通过外键关系(延迟加载 - > virtual启用了不同的子模型)。

似乎使用像

这样的查询
Parent.Where(x=> x.something == true).AsQueryable()

无法预测。也就是说,有时孩子会被加载而有时他们不是(注意:这已经开始在EF 6.1.3中发生了。)

我想知道是否有保证在不使用include的情况下延迟加载儿童的方法。

准确:

var list = Parent.Where(x=> ...).Take(1);
foreach(var parent in list){
   var childName = parent.Child.Name; //NOTE: Parent and Child are related by foreign key (some Id)
}

问题是,即使数据库中的记录存在,也发现Child为空。

请注意,Include同时正常工作Take(50) instead of Take(1)也可以正常工作。

1 个答案:

答案 0 :(得分:0)

我认为您可以使用Inculde方法,如下所示:

Parent.Include(“Child”)。其中(x => x.something == true);

并且您不需要像上面的行一样调用AsQueryable()返回AsQueryable