Lazy Loading 懒得加载一些导航属性

LazyLoading is too lazy to Load some navigational properties

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

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

真正的问题是,有没有人知道 EF 停止延迟加载导航属性或只加载 "half of them" 的原因?

示例代码过于复杂且私有(企业),无法在此处共享。

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

试试这个:

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

上面描述的问题很久以前通过重新加载整个 DbContext 解决了,经过多次重试,我发现问题是,如果你有来自另一个 dbcontext 的对象,从那个片刻之后,延迟加载停止工作(现在有意义....:P)