Quello che voglio è concettualmente semplice, ma non riesco a capire come sarebbe meglio implementare una cosa del genere.Cache Entity Framework e tracciare le sue modifiche?
Nella mia applicazione Web dispongo di servizi che accedono ai repository che accedono a EF che interagisce con il database di SQL Server. Tutti questi sono istanziati una volta per richiesta web.
Desidero disporre di un livello aggiuntivo tra i repository e EF (o i servizi e i repository?) Che memorizza in modo statico gli oggetti estratti e trasferiti al database.
L'obiettivo, presupponendo che l'accesso DB venga eseguito solo tramite l'applicazione, è che noi conosciamo per il fatto che, a meno che alcuni repository non accedano a EF e impongano una modifica, il set di oggetti non cambia realmente.
Un esempio potrebbe essere:
Repository richiama il metodo GetAllCarrots();
GetAllCarrots()
esegui una query in SQL Server recuperato un List<Carrot>
, se non altro succede nel frattempo, desidero evitare questa ricerca da essere effettivamente effettuato su SQL Server ogni volta (indipendentemente dal fatto che sia su una richiesta Web diversa, voglio essere in grado di gestire tale scenario)
Ora, se una chiamata a BuyCarrot()
aggiunge un Carrot
alla tabella, allora voglio che invalidi la cache statica per Carrot
s, il che renderebbe GetAllCarrots();
una query al database ancora una volta.
Quali sono alcune buone risorse per il caching del database?