2010-11-17 15 views
0

J'utilise un seul objet DataContext global pour l'ensemble de l'application. L'application doit fonctionner dans un environnement réseau où plusieurs instances fonctionnent simultanément avec une base de données SQL partagée.Comment conserver un objet DataContext global mis à jour dans différentes instances en cours d'exécution de l'application?

Les modifications de base de données dans une application ne sont pas répercutées dans les autres instances jusqu'à ce que j'appelle la méthode DataContext.Refresh. Le problème est que cette fonction prend du temps et que je ne peux pas changer mon code en utilisant différents objets datacontext pour différentes opérations.

Que dois-je faire pour toujours garder l'objet datacontext dans chaque application mise à jour?

+2

de quel type d'application s'agit-il? web/wpf/winforms (ou tout?). de toute façon, un DC global est une chose folle à faire. – RPM1984

+0

ne le faites pas ... –

+0

l'affirmation la plus effrayante de tous est "L'application devrait fonctionner dans un environnement réseau". Oui, bonne chance avec ça. Que Dieu ait pitié de votre âme. – RPM1984

Répondre

0

RefreshMode Enum est le bit correct. Juste une question de décider quand l'utiliser, et d'utiliser le DataContext correctement. Considérez DataContext comme une unité de travail et marquez le mode d'actualisation lors de la préparation d'une soumission (comme KeepChanges ou autre). De cette façon, l'information des utilisateurs est poussée (ou éclate en cas de conflit) et elle est automatiquement mise à jour avec les données les plus fraîches de la base de données.

Je pense que tout le monde a souligné à juste titre l'inexactitude d'un contexte de données global. Vous devez soit définir un délai d'actualisation, soit donner à l'utilisateur un bouton à actualiser si vous souhaitez mettre à jour son affichage plus fréquemment. Je ne connais pas d'autre chemin là-bas.