Bonjour à tous,
Je me posais une petite question au sujet de la méthode Refresh d'un DataContext dans LINQ.
Dans mon application, j'utilise LINQ pour l'accès à ma bd.
Lors de l'actualisation d'affichage,et afin d'actualiser l'état d'entité qui aurait été modifié directement dans la base de données, je suis obligé d'utiliser le Refresh de mon datacontext.
Cependant, lorsque j'actualise beaucoup d'entités, (15000 par exemple) cela augmente significativement le temps d'exécution de mes requètes, 5 à 10 secondes.
- Aurions vous une solution pour obtenir les modifications parvenus dans la base de données sans utiliser le refresh ?
- Est il possible de threader le Refresh ? Est ce judicieux de le faire ?
J'ai essayé de rafraichir mon datacontext avec cette fonction :
Cependant, cela n'a pas le même effet que le Refresh car cela me génère un autre datacontext et j'ai alors l exception suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 private void ClearCache() { const BindingFlags FLAGS = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic; var method = GetLINQ().GetType().GetMethod("ClearCache", FLAGS); method.Invoke(GetLINQ(), null); }
Tentative d'attachement ou de création d'une entité qui n'est pas new, qui a peut-être été chargée à partir d'un autre DataContext. Cela n'est pas pris en charge.
Merci d'avance !
Partager