我知道这个异常是由一些特性造成被定义为virtual
,因此它试图上下文已被释放后,懒洋洋地加载它们。
不过,我不希望加载整个对象图只是执行一个非常简单的查询。 如果我尝试缓存对象时的背景下还活着,它会尝试加载懒洋洋的一切,并大大减缓下来。
有没有进行查询,然后得到一个断开的结果集,所以它不会尝试加载懒洋洋的事情,我不希望它的方法吗? 或者只是把延迟加载的特定查询?
下面是我使用的代码:
return _cacheHelper.CacheGetOrInsert(CenterCacheKey, "tariffs", () => {
using (var context = GetContext()) {
return context.Tariffs
.Include("Rates")
.Include("Rates.Tiers")
.Include("Rates.Tiers.Discounts")
.Include("Discounts")
.Include("Discounts.Regions")
.ToList();
}
});
编辑
啊,刚发现context.Configuration.LazyLoadingEnabled = false;
这似乎工作。