Entity framework 缓存EF域对象:ObjectContext实例已被释放,不能再用于需要连接的操作
我知道这个异常是由于一些属性被定义为虚拟的,因此它试图在上下文被释放后延迟加载它们 然而,我不想仅仅为了执行一个相当简单的查询而加载整个对象图。如果我试图在上下文仍处于活动状态时缓存对象,它会尝试惰性地加载所有内容,并大大降低加载速度 有没有办法执行查询,然后获得一个断开连接的结果集,这样它就不会尝试惰性地加载我不希望它加载的内容?或者只是针对特定查询延迟加载 以下是我使用的代码:Entity framework 缓存EF域对象:ObjectContext实例已被释放,不能再用于需要连接的操作,entity-framework,caching,lazy-loading,Entity Framework,Caching,Lazy Loading,我知道这个异常是由于一些属性被定义为虚拟的,因此它试图在上下文被释放后延迟加载它们 然而,我不想仅仅为了执行一个相当简单的查询而加载整个对象图。如果我试图在上下文仍处于活动状态时缓存对象,它会尝试惰性地加载所有内容,并大大降低加载速度 有没有办法执行查询,然后获得一个断开连接的结果集,这样它就不会尝试惰性地加载我不希望它加载的内容?或者只是针对特定查询延迟加载 以下是我使用的代码: return _cacheHelper.CacheGetOrInsert(CenterCacheKey, "tar
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;这似乎奏效了