我知道这个异常是由一些被定义为的属性引起的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;
这似乎有效。