2010-02-08 6 views
6

Je me demandais s'il était judicieux de mettre en cache l'objet ObjectContext d'Entity Framework dans le cache; cela me donnera-t-il des problèmes avec plusieurs connexions en même temps que l'utilisateur va rencontrer des problèmes avec cela? J'ai eu des erreurs comme: «la connexion est actuellement fermée» et je me demandais si cela était dû à plusieurs utilisateurs et à la mise en cache de ObjectContext, ou si elle était liée à dire rafraîchir plusieurs fois ou arrêter la page et rapidement faire quelque chose d'autre (quelque chose que nous avons fait pour obtenir l'erreur).ADO.NET Entity Framework ObjectContext - Mise en cache Question

+0

Avez-vous lu que des informations ou que vous utilisez la méthode Save aussi? – Zyphrax

+0

Je fais les deux lire/écrire avec. –

Répondre

5

Je ne le conseillerais pas. ObjectContext doit être actif pour observer les modifications des entités avec lesquelles vous travaillez activement ou vous devez déconnecter les entités actives avant de mettre en cache ObjectContext.

Si vous n'avez aucune entité active, il n'y a pas vraiment besoin de mettre en cache un ObjectContext. En EFv1 travailler avec des entités déconnectées était au mieux problématique, donc je ne cache pas ou n'attend pas Entity Framework v4 qui permet des entités plus gérables (entités de suivi automatique, entités POCO etc). Je pensais que j'ajouterais un dernier point - plusieurs threads - pourrait aussi être problématique. Appliquer les modifications tentera de valider toutes les modifications suivies par ObjectContext. Si plusieurs utilisateurs partagent un seul contexte ... bien, j'espère que vous pouvez voir les problèmes ..

+0

Merci, donc sans mettre en cache le contexte, recommandez-vous également de détacher des entités renvoyées à partir des requêtes? –

+0

En outre, qu'en est-il si j'utilise la collection HttpContext.Current.Items, qui ne la stocke que pour la requête en cours? Je ne suis pas sûr que ce soit global parmi les utilisateurs, mais est-ce une autre préoccupation similaire? Merci. –

+0

Désolé pour la réponse tardive - actuellement sur la route. Le détachement pourrait fonctionner à condition que le contexte original soit correctement éliminé – RobS

Questions connexes