缓存无法在数据层中工作

时间:2011-11-17 23:18:02

标签: asp.net caching

在我的数据层中使用HttpContext.Current.Cache时,没有任何缓存。我正在使用此代码:

  public List<Review> GetReviews()
 {           
            List<Review> reviews = new List<Review>();
            string cacheKey = "my_reviews";

            if (HttpContext.Current != null && HttpContext.Current.Cache[cacheKey] != null)
                reviews = (List<Review>)HttpContext.Current.Cache[cacheKey];
            else
            {
                reviews = (List<Review>)Review.Find(review => review.NodeId == nodeId && review.IsDeleted == false);
                if (HttpContext.Current != null)
                    HttpContext.Current.Cache.Insert(cacheKey, reviews, null, DateTime.Now.AddMinutes(60), System.Web.Caching.Cache.NoSlidingExpiration);
            }
           return reviews;
}

当我再次调用该方法时,没有任何缓存。

如果我在UI层使用完全相同的代码,一切都按预期工作,并且评论被缓存。

为什么我不能在数据层中缓存评论?

谢谢,

托马斯

1 个答案:

答案 0 :(得分:1)

您的数据层是否有对System.Web的引用?您是否尝试过设置断点并单步执行代码以查看实际的控制流程是什么样的?