Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 缓存EF域对象:ObjectContext实例已被释放,不能再用于需要连接的操作_Entity Framework_Caching_Lazy Loading - Fatal编程技术网

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;这似乎奏效了