1

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

4

0 回答 0