2008-12-09 8 views
1

Je viens de commencer à plonger dans ADO.NET Data Services pour un projet, et j'ai rapidement rencontré un problème. Au début, j'ai été surpris par la performance, mais j'ai réalisé que les données étaient mises en cache. Mon projet repose sur des données en temps réel, et j'aimerais utiliser la syntaxe de requête REST ADO.NET Data Services (sans avoir besoin d'utiliser WCF ou SOAP), mais sans mise en cache.ADO.NET Data Services 'Astoria' et Caching

J'ai vu sur la page d'introduction de ADO.NET Data Services (here) qu'ils n'ont pas encore de support d'API pour gérer la durée du cache ou quoi que ce soit de similaire.

Quelqu'un a-t-il des idées sur la façon d'accomplir cela ou de désactiver le cache?

+0

Hrmmm, J'attendrais une réponse à cette question parce que je n'étais pas au courant que les données réelles étaient mises en cache. Êtes-vous absolument certain que ce sont les données qui sont mises en cache et non les requêtes traitées par LINQ pour chaque URI basé sur REST que vous utilisez pour accéder à vos données? –

Répondre

2

Par défaut, le contexte de données a MergeOption réglé sur appendOnly. Cela signifie que les re-demandes n'ajouteront que de nouvelles entités et ne mettront pas à jour les entités existantes. Essayez de définir MergeOption pour OverwriteChanges:

this.context.MergeOption = MergeOption.OverwriteChanges; 

Cela a fonctionné pour moi quand je l'ai remarqué! Si vous utilisez des données en temps réel, vous pouvez désactiver complètement le suivi des modifications avec l'option NoTracking.

0

Ce lien est utile, mais il ne parle pas vraiment de ETags et la mise en cache, il mentionne simplement que ETags peut être utilisé pour la mise en cache. Avez-vous un exemple?

0

Détails de la profondeur sur le ETag