2009-01-27 4 views
2

L'un de mes principaux ennuis avec Linq to SQL dans WinForms (et j'ose dire WPF) est le manque de support pour les datacontexts de longue durée, voir here. Le problème est que vous ne pouvez pas obtenir les mises à jour de la base de données, vous obtenez toujours les mêmes anciens enregistrements jusqu'à ce que vous jetez le datacontext. C'est très bien pour une application Web lorsque la page n'est active que pendant quelques millisecondes, mais pas si bien dans une application WinForms avec plusieurs contrôles liés tous collés à l'ancien datacontext et assis sur le bureau des utilisateurs.Enitity Framework avec contexte d'objet de longue durée

Ma question est de savoir si EF a encore cette limitation ou pouvez-vous obtenir des enregistrements à jour de EF sans jeter le contexte de l'objet?

Répondre

3

Vous pouvez utiliser la méthode ObjectContext.Refresh pour mettre à jour un contexte existant.

+0

Merci. En fait, vous pouvez utiliser db.Refresh (System.Data.Linq.RefreshMode.KeepChanges, myObjectsCollection) dans Linq to SQL mais il émet une requête de sélection séparée pour chaque objet individuel qui doit être actualisé. Savez-vous si ObjectContext.Refresh est plus efficace? –

+1

Oui, il effectue des mises à jour par lot par ensemble d'entités. –

Questions connexes