В одном из моих веб-приложений я пытаюсь кэшировать некоторые ссылочные объекты, чтобы уменьшить попадания в базу данных.Я использую блок приложения Caching для реализации кэширования.Я новичок в этом, и я не уверен в его реализации.Я написал пример репозитория, чтобы использовать его.Я хочу, чтобы вы все посмотрели и прокомментировали это.
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;
}
}
}
}
}
Пожалуйста, дайте мне знать, как я могу улучшить его.
Пожалуйста, дайте мне знать, сколько данныхмы можем иметь в кеше.