MergeOption MergeOption MergeOption MergeOption Enum

Definition

Gibt an, wie Objekte, die in den Objektkontext geladen werden, mit bereits im Objektkontext vorhandenen Objekten zusammengeführt werden.Specifies how objects being loaded into the object context are merged with objects already in the object context.

public enum class MergeOption
public enum MergeOption
type MergeOption = 
Public Enum MergeOption
Vererbung

Felder

AppendOnly AppendOnly AppendOnly AppendOnly 0

Objekte, die nicht im Objektkontext vorhanden sind, werden an den Kontext angefügt.Objects that do not exist in the object context are attached to the context. Wenn sich ein Objekt bereits im Kontext befindet, werden die aktuellen und ursprünglichen Werte der Objekteigenschaften im Eintrag nicht mit Datenquellenwerten überschrieben.If an object is already in the context, the current and original values of object's properties in the entry are not overwritten with data source values. Der Zustand des Objekteintrags und der Objekteigenschaften des Eintrags werden nicht geändert.The state of the object's entry and state of properties of the object in the entry do not change. AppendOnly ist die Standardzusammenführungsoption.AppendOnly is the default merge option.

NoTracking NoTracking NoTracking NoTracking 3

Objekte werden im Detached-Zustand beibehalten und nicht im ObjectStateManager nachverfolgt.Objects are maintained in a Detached state and are not tracked in the ObjectStateManager. Entity FrameworkEntity Framework-generierte Entitäten und POCO-Entitäten mit Proxys behalten jedoch einen Verweis auf den Objektkontext bei, um das Laden von verknüpften Objekten zu erleichtern.However, Entity FrameworkEntity Framework-generated entities and POCO entities with proxies maintain a reference to the object context to facilitate loading of related objects.

OverwriteChanges OverwriteChanges OverwriteChanges OverwriteChanges 1

Objekte, die nicht im Objektkontext vorhanden sind, werden an den Kontext angefügt.Objects that do not exist in the object context are attached to the context. Wenn sich ein Objekt bereits im Kontext befindet, werden die aktuellen und ursprünglichen Werte der Objekteigenschaften im Eintrag mit Datenquellenwerten überschrieben.If an object is already in the context, the current and original values of object's properties in the entry are overwritten with data source values. Der Zustand des Objekteintrags wird auf Unchanged festgelegt. Dabei werden keine Eigenschaften als geändert markiert.The state of the object's entry is set to Unchanged, no properties are marked as modified.

PreserveChanges PreserveChanges PreserveChanges PreserveChanges 2

Objekte, die nicht im Objektkontext vorhanden sind, werden an den Kontext angefügt.Objects that do not exist in the object context are attached to the context.

Hinweise

Das Entity Framework behält nur eine einzelne Instanz eines Objekts mit einem bestimmten Entitätsschlüssel im Cache.The Entity Framework only maintains a single instance of an object with a specific entity key in the cache. Die EntityKey -Objekte sind unveränderliche Objekte, die die Identität des Objekts darstellen.The EntityKey objects are immutable objects that represent object's identity. Entitätsschlüssel werden für die Identitätsauflösung im Objektkontext verwendet.Entity keys are used to perform identity resolution in the object context. Weitere Informationen finden Sie unter arbeiten mit Entitätsschlüsseln.For more information, see Working with Entity Keys. Wenn eine Entität mit der gleichen Identität bereits verfolgt wird, werden die Daten stammen aus der Datenquelle und die Daten bereits im Zustands-Manager zusammengeführt, gemäß der MergeOption der Abfrage.If an entity with the same identity is already being tracked, the data coming from the data source and the data already in the state manager are merged according to the MergeOption of the query.

Weitere Informationen zu MergeOption.PreserveChangesAdditional information on MergeOption.PreserveChanges

Wenn der Zustand der Entität EntityState.Unchanged ist, werden die aktuellen und ursprünglichen Werte des Eintrags mit Datenquellenwerten überschrieben.If the state of the entity is EntityState.Unchanged, the current and original values in the entry are overwritten with data source values. Der Zustand der Entität bleibt EntityState.Unchanged, und es werden keine Eigenschaften als geändert markiert.The state of the entity remains EntityState.Unchanged and no properties are marked as modified.

Wenn der Zustand der Entität EntityState.Modified ist, werden die aktuellen Werte geänderter Eigenschaften nicht mit Datenquellenwerten überschrieben.If the state of the entity is EntityState.Modified, the current values of modified properties are not overwritten with data source values. Die ursprünglichen Werte ungeänderter Eigenschaften werden mit den Werten der Datenquelle überschrieben.The original values of unmodified properties are overwritten with the values from the data source.

In .NET Framework 4 vergleicht das Entity Framework die aktuellen Werte ungeänderter Eigenschaften mit den Werten, die aus der Datenquelle zurückgegeben wurden.In .NET Framework 4, the Entity Framework compares the current values of unmodified properties with the values that were returned from the data source. Wenn die Werte nicht identisch sind, wird die Eigenschaft als geändert markiert.If the values are not the same, the property is marked as modified.

In .NET Framework 3.5 SP1 ist das Entity Framework nicht die Eigenschaft als geändert zu markieren, selbst wenn der Wert in der Datenquelle abweicht.In .NET Framework 3.5 SP1, the Entity Framework does not mark the property as modified even if the value in the data source is different.

Nur geänderte Eigenschaften werden beim Aufrufen von ObjectContext.SaveChanges in der Datenquelle beibehalten.Only modified properties are persisted to the data source when you call ObjectContext.SaveChanges.

Um das Verhalten der .NET Framework 3.5 SP1 beizubehalten, setzen ObjectContextOptions.UseLegacyPreserveChangesBehavior zu true.To preserve the .NET Framework 3.5 SP1 behavior, set ObjectContextOptions.UseLegacyPreserveChangesBehavior to true. Die Option PreserveChanges kann verwendet werden, um Ausnahmen bzgl. vollständiger Parallelität aufzulösen und gleichzeitig Änderungen im lokalen Kontext beizubehalten.The PreserveChanges option can be used to resolve optimistic concurrency exceptions while preserving changes in the local context. Weitere Informationen finden Sie unter Speichern von Änderungen und Verwalten von Nebenläufigkeit.For more information, see Saving Changes and Managing Concurrency.

Gilt für: