LazyLoading太懒了加载一些导航属性

时间:2016-04-05 13:39:49

标签: c# wpf entity-framework entity-framework-6 lazy-loading

我不知道这是EF懒惰问题还是真正的EF错误,因为这种不规则性有时只会发生(在同一代码中10次aprox.1) 问题在于,有时候,由于某些原因,一些随机导航属性(并不总是相同)不会加载延迟加载活动和代理创建也是活动的。

该示例是一个表单,其中包含+ - 40个字段,表示Person,它与许多其他表具有Relational连接,而其他表与其他表具有。 我使用延迟加载是因为在我看来这是最好的方法,因为表单中涉及的表的数量。问题是某些字段显示为空白,因为某些字段导航。属性不加载。

真正的问题是,是否存在,或者有人知道EF停止延迟加载导航属性或仅加载其中一半" 的原因?

示例代码过于复杂且私密(企业)无法在此分享。

2 个答案:

答案 0 :(得分:0)

前一段时间我遇到过类似的问题。 在查询结尾使用.ToList()为我解决了问题:

试试这个:

using(EntityContext db = new EntityContext())
{
     db.LazyLoadingEnabled = true;
     List<Persons> persons = db.Persons.ToList();
}

答案 1 :(得分:0)

很久以前通过重新加载整个DbContext解决了上面描述的问题,经过大量的重试之后,我能够发现问题是,如果你有另一个dbcontext的某个对象,从那一刻开始,lazzyloading停止工作(现在有意义......:P)