在我的一个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;
}
}
}
}
}
请让我知道,我该如何改进呢。
请告诉我们,我们可以在缓存中获得多少数据。