Abbiamo iniziato a implementare un codice di memorizzazione nella cache nel nostro progetto MVC. Abbiamo derivato da .Net's ObjectCache per memorizzarlo in un database SQL.
Ciò che facciamo ora è in ogni metodo che vogliamo memorizzare nella cache, abbiamo un codice come questo:
public StatusCounts GetCounts()
{
var cache = new SqlCache<StatusCounts>("mykey");
if(cache.HasCachedData())
return cache.GetCachedData();
var data = StatusRepository.GetCounts();
cache.SetData(data, DateTime.Now.AddHours(2));
}
Per quanto riguarda la memorizzazione nella cache, funziona. Ma la mia preoccupazione è che ora sembra che GetCounts abbia più responsabilità. Non si tratta più solo di calcolare i conteggi, ma di recuperarli da una cache (se esistono) e di salvarli in una cache prima di tornare.
C'è un modo più semplice per farlo?