2008-11-20 9 views
0

Mon site Web s'exécute sur un seul serveur. Je cache un DataTable. Chaque session a un refernce à son propre DataView se référant à ce DataTable. Ce qui m'inquiète, c'est que lorsque je dois apporter des modifications à la base de données sous-jacente, elles se propagent à chacune des références de session.Gestion des mises à jour d'un DataTable mis en cache lorsque la session des utilisateurs contient des DataViews basées sur ce DataTable

Ou existe-t-il une meilleure façon de gérer cette situation.

Répondre

0

En principe, oui. Les modifications seront propagées vers les vues à condition que vous continuiez à utiliser le même DataTable. Cependant, il existe un risque de problèmes en fonction de la façon dont vous implémentez ceci:

  • Vous avez une condition de course potentielle lors de la génération DataTable en cache pour la première fois: plusieurs requêtes au serveur peut détecter que le DataTable cache ne existe, et tente de le générer - dans ce cas, vous pourriez avoir un DataTable en double. Si vous régénérez le DataTable mis en cache (par exemple, s'il est supprimé du cache ASP.NET en raison d'un dépassement de délai), les DataViews existants dans Session continueront à référencer l'ancien DataTable.