使用缓存应用程序块在Asp.net应用程序中的存储库层缓存

时间:2011-10-02 15:10:27

标签: c# .net asp.net caching enterprise-library

在我的一个webapplication中,我试图缓存一些引用实体,以减少数据库命中。我正在使用缓存应用程序块来实现缓存。我是新手,我不确定它的实现。我编写了一个示例存储库来使用它。 我希望大家好好看看并评论一下。

public class StatusRepository
    {
        ICacheManager statusCahce = CacheFactory.GetCacheManager(); //I am not sure whether I should initilise statusCache object here.

     public StatusEntity Get(byte statusId)
        {
            StatusCollection statusCollection = (StatusCollection)statusCahce.GetData("Statuses");
            if (statusCollection != null)
            {
                return (StatusEntity)statusCollection.StatusList.First(p=>p.StatusId==statusId);
            }
            else
            {
               // HIT Database to get the entity
            }
        }
       public StatusCollection GetStatusList()
        {
            StatusCollection statusCollection = (StatusCollection)statusCahce.GetData("Statuses");
            SqlHelper sql = new SqlHelper(true);
            if (statusCollection != null) //We have it in cache
            {
                return statusCollection;
            }
            else //Hit Database
            {

                     //Hit Database to get the StatusCollection and add that           collection to cache       

                    statusCahce.Add("Statuses", statusCollection);
                    return statusCollection;
                }
            }
        }
    }
}

请让我知道,我该如何改进呢。

请告诉我们,我们可以在缓存中获得多少数据。

1 个答案:

答案 0 :(得分:1)

this这样的东西可能有用吗?