Partager via


Suivi des modifications et résolution d'identité (Entity Framework)

Un objet ObjectQuery ajoute de nouveaux objets retournés par la requête au cache d'objet qui est maintenu par l'objet ObjectStateManager. La méthode Attach sur ObjectContext et les méthodes Load sur EntityReference et EntityCollection ajoutent également des objets au cache d'objet. Il existe un objet ObjectStateManager pour chaque contexte d'objet. Au sein d'un contexte d'objet, des objets peuvent être ajoutés, modifiés et supprimés, indépendamment des données de la source de données. Lorsque plusieurs requêtes ou opérations de chargement dans la portée d'un même contexte d'objet retournent des collections d'objets qui contiennent des doublons, Object Services ne conserve dans le cache qu'une seule instance d'un objet doté d'une clé d'entité spécifique. Par défaut, les requêtes ne retournent que les objets qui ne se trouvent pas déjà dans le cache, ce qui signifie que les modifications apportées aux objets qui se trouvent déjà dans le cache ne sont pas remplacées. Ce comportement est contrôlé en spécifiant une valeur MergeOption pour les requêtes et les opérations de chargement. La valeur par défaut est AppendOnly. Seuls les objets qui ne sont pas déjà présents dans le cache d'objet sont alors chargées ; les objets existants ne sont pas remplacés. Il existe un autre moyen d'empêcher que les modifications du cache d'objet ne soient remplacées par les mises à jour provenant de la base de données qui consiste à spécifier PreserveChanges. Cette méthode est fréquemment employée pour résoudre les exceptions d'accès concurrentiel optimiste tout en préservant les modifications dans le contexte local. Pour plus d'informations, voir Enregistrement des modifications et gestion de l'accès concurrentiel (Entity Framework). Lorsque vous spécifiez OverwriteChanges, les objets du cache sont remplacés par la version la plus récente des objets qui ont été matérialisés à partir de la base de données, même si les modifications ont déjà été apportées à ces objets.

Voir aussi

Autres ressources

Gestion du contexte de l'objet (Entity Framework)