MergeOption Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Spécifie comment les objets qui sont chargés dans le contexte de l’objet sont fusionnés avec les objets déjà présents dans le contexte de l’objet.
public enum class MergeOption
public enum MergeOption
type MergeOption =
Public Enum MergeOption
- Héritage
Champs
AppendOnly | 0 | Les objets qui n'existent pas dans le contexte de l'objet ne sont pas attachés au contexte. Si un objet est déjà présent dans le contexte, les valeurs actuelles et d'origine des propriétés de l'objet dans l'entrée ne sont pas remplacées par les valeurs de la source de données. L'état de l'entrée de l'objet et l'état des propriétés de l'objet dans l'entrée ne changent pas. AppendOnly est l'option de fusion par défaut. |
NoTracking | 3 | Les objets sont maintenus dans un état Detached et ne sont pas suivis dans l'objet ObjectStateManager. Toutefois, les entités générées par Entity Framework et les entités POCO avec proxys conservent une référence au contexte d’objet pour faciliter le chargement d’objets associés. |
OverwriteChanges | 1 | Les objets qui n'existent pas dans le contexte de l'objet ne sont pas attachés au contexte. Si un objet est déjà présent dans le contexte, les valeurs actuelles et d'origine des propriétés de l'objet dans l'entrée sont remplacées par les valeurs de la source de données. L'état de l'entrée de l'objet a la valeur Unchanged, aucune propriété n'est marquée comme modifiée. |
PreserveChanges | 2 | Les objets qui n'existent pas dans le contexte de l'objet ne sont pas attachés au contexte. |
Remarques
Entity Framework ne gère qu’une seule instance d’un objet avec une clé d’entité spécifique dans le cache. Les EntityKey objets sont des objets immuables qui représentent l’identité de l’objet. Les clés d'entité sont utilisées pour assurer la résolution d'identité dans le contexte de l'objet. Pour plus d’informations, consultez Utilisation des clés d’entité. Si une entité avec la même identité est déjà suivie, les données provenant de la source de données et les données déjà dans le gestionnaire d’état sont fusionnées en fonction du MergeOption de la requête.
Informations supplémentaires sur MergeOption.PreserveChanges
Si l'état de l'entité est EntityState.Unchanged, les valeurs actuelles et d'origine dans l'entrée sont remplacées par les valeurs de la source de données. L'état de l'entité reste EntityState.Unchanged et aucune propriété n'est marquée comme modifiée.
Si l'état de l'entité est EntityState.Modified, les valeurs actuelles des propriétés modifiées ne sont pas remplacées par les valeurs de la source de données. Les valeurs d'origine des propriétés non modifiées sont remplacées par les valeurs de la source de données.
Dans .NET Framework 4, Entity Framework compare les valeurs actuelles des propriétés non modifiées aux valeurs retournées à partir de la source de données. Si les valeurs ne sont pas identiques, la propriété est marquée comme modifiée.
Seules les propriétés modifiées sont rendues persistantes dans la source de données lorsque vous appelez ObjectContext.SaveChanges.