Domanda

Ho appena iniziato ad immergermi in ADO.NET Data Services per un progetto e ho subito riscontrato un problema. All'inizio sono rimasto stupito dalla performance, ma poi ho capito che i dati erano memorizzati nella cache. Il mio progetto si basa su dati in tempo reale e mi piacerebbe utilizzare la sintassi della query REST di ADO.NET Data Services (senza la necessità di utilizzare WCF o SOAP), ma senza memorizzazione nella cache.

Ho visto la pagina di introduzione di ADO.NET Data Services ( qui ) che non dispongono ancora del supporto API per la gestione della durata della cache o simili.

Qualcuno ha qualche idea su come ottenere questo risultato o disattivare la cache?

È stato utile?

Soluzione

Per impostazione predefinita, il contesto dei dati ha MergeOption impostato su AppendOnly. Ciò significa che le ri-richieste aggiungeranno solo nuove entità e non aggiorneranno quelle esistenti. Prova a impostare MergeOption su OverwriteChanges:

this.context.MergeOption = MergeOption.OverwriteChanges;

Questo ha funzionato per me quando l'ho notato! Se stai utilizzando dati in tempo reale, potresti voler disattivare completamente il rilevamento delle modifiche con l'opzione NoTracking.

Altri suggerimenti

Di recente abbiamo pubblicato un post su come utilizzare ETags per controllare la politica di memorizzazione nella cache dei dati restituiti da un servizio dati, http://blogs.msdn.com/astoriateam/archive/2008/04/22/optimistic-concurrency-data-services.aspx

Questo link è utile, ma in realtà non parla di ETag e memorizzazione nella cache, menziona solo che ETag può essere utilizzato per la memorizzazione nella cache. Hai un esempio?

Approfondimenti su ETag

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top