2009-10-09 9 views
0

J'ai une application avec des sections utilisateur et admin. Si un administrateur met à jour les données à l'aide de la source de données sql, la base de données est mise à jour. Cependant, lorsque nous récupérons des données avec une requête linq, alors il montre son ancienne valeur plutôt que la valeur mise à jour.Problème de mise à jour Linq

Après un certain temps, la requête linq affiche automatiquement la valeur correcte.

Je pense que c'est la mise en cache de la valeur, mais je me trouve impuissant. S'il vous plait, j'ai besoin de votre aide avec ceci.

Répondre

0

Quand vous dites

lorsque nous récupérons des données avec requête LINQ

Est-ce que vous vous entendez appeler à nouveau vos méthodes de sélection ou vous utilisez le courant dans les objets de mémoire?

Dans les deux cas, vous pouvez toujours rafraîchir une entité avec:

Context.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, entity) 
0

Assurez-vous d'utiliser efficacement votre DataContext (idéalement un par unité de travail).

Après chaque mise à jour, veillez à appeler le DataContext.SubmitChanges(); pour valider vos modifications dans la base de données.

Sachez également que tout contexte que vous instanciez entre l'ajout de vos modifications à un autre contexte et l'appel SubmitChanges() ne reflète pas ces modifications.

+0

grâce Quand je suis mise à jour des données avec SQL datasource seulement que le temps que je reçois ce problème sinon son bon travail. Mais il met à jour la base de données. –

+0

mais la requête linq affiche les anciennes données –

+0

Assurez-vous de ne pas créer le DataContext avant de mettre à jour les données avec la Sql Datasouce (et si vous utilisez Linq pour récupérer des données, vous devez également l'utiliser pour mettre à jour les données). –