Entity Framework 4.1 DbSet Recharger

Je suis aide d'une seule instance de DbContext scénario à l'ombre toute la copie de la base de données localement dans une application WPF. Je l'ai entendu, c'est une mauvaise pratique, mais ma base de données est petit et j'ai besoin d'une copie de l'échelle locale, tandis que l'application est en cours d'exécution.

Une méthode d'extension pour IQueryable, Load() me permet de précharger les éléments d'une DbSet<>, de sorte que je peux lier les choses à la propriété Locale de DbSet<>. Les données dans la base de données change rapidement, donc je veux SaveChanges() et recharger tout, même les objets qui sont déjà suivis. L'appel de la Load() méthode encore ne pas mettre à jour les éléments qui sont suivies, mais ne sont pas marqué comme modifié, qui sont déjà chargés.

Quelle est la méthode préférée de rechargement de la préchargé éléments dans un DbSet<>? Sur le dessus de ma tête, je ne peux que penser de l'appel SaveChanges(), puis passez par toutes les entrées et de définir à la fois d'un suivi, et les valeurs d'origine pour les valeurs en cours dans la base de données, puis Load() ce que de nouveaux objets qui peuvent avoir été ajoutés. Dans mon scénario, il n'est pas possible de supprimer des objets, mais je pourrais avoir à l'élément de prise en charge de la suppression à long terme. Cela ne semble pas juste, il devrait y avoir un moyen de tout laisser tomber et de le recharger. Il semblerait qu'il est plus facile de laisser tomber mon contexte et juste de commencer à nouveau, mais tous les éléments en WPF sont déjà lié à l' Local´ObservableCollection<>, et ce juste les dégâts de l'interface.

OriginalL'auteur Gleno | 2011-04-27