MergeOption Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt an, wie Objekte, die in den Objektkontext geladen werden, mit bereits im Objektkontext vorhandenen Objekten zusammengeführt werden.
public enum class MergeOption
public enum MergeOption
type MergeOption =
Public Enum MergeOption
- Vererbung
Felder
AppendOnly | 0 | Objekte, die nicht im Objektkontext vorhanden sind, werden an den Kontext angefügt. Wenn sich ein Objekt bereits im Kontext befindet, werden die aktuellen und ursprünglichen Werte der Objekteigenschaften im Eintrag nicht mit Datenquellenwerten überschrieben. Der Zustand des Objekteintrags und der Objekteigenschaften des Eintrags werden nicht geändert. AppendOnly ist die Standardzusammenführungsoption. |
NoTracking | 3 | Objekte werden im Detached-Zustand beibehalten und nicht im ObjectStateManager nachverfolgt. Von Entity Framework generierte Entitäten und POCO-Entitäten mit Proxys behalten jedoch einen Verweis auf den Objektkontext bei, um das Laden verwandter Objekte zu erleichtern. |
OverwriteChanges | 1 | Objekte, die nicht im Objektkontext vorhanden sind, werden an den Kontext angefügt. Wenn sich ein Objekt bereits im Kontext befindet, werden die aktuellen und ursprünglichen Werte der Objekteigenschaften im Eintrag mit Datenquellenwerten überschrieben. Der Zustand des Objekteintrags wird auf Unchanged festgelegt. Dabei werden keine Eigenschaften als geändert markiert. |
PreserveChanges | 2 | Objekte, die nicht im Objektkontext vorhanden sind, werden an den Kontext angefügt. |
Hinweise
Entity Framework verwaltet nur eine einzelne Instanz eines Objekts mit einem bestimmten Entitätsschlüssel im Cache. Die EntityKey Objekte sind unveränderliche Objekte, die die Identität des Objekts darstellen. Entitätsschlüssel werden für die Identitätsauflösung im Objektkontext verwendet. Weitere Informationen finden Sie unter Arbeiten mit Entitätsschlüsseln. Wenn eine Entität mit derselben Identität bereits nachverfolgt wird, werden die Daten aus der Datenquelle und die Daten, die sich bereits im Zustands-Manager befinden, gemäß der MergeOption der Abfrage zusammengeführt.
Weitere Informationen zu MergeOption.PreserveChanges
Wenn der Zustand der Entität EntityState.Unchanged ist, werden die aktuellen und ursprünglichen Werte des Eintrags mit Datenquellenwerten überschrieben. Der Zustand der Entität bleibt EntityState.Unchanged, und es werden keine Eigenschaften als geändert markiert.
Wenn der Zustand der Entität EntityState.Modified ist, werden die aktuellen Werte geänderter Eigenschaften nicht mit Datenquellenwerten überschrieben. Die ursprünglichen Werte ungeänderter Eigenschaften werden mit den Werten der Datenquelle überschrieben.
In .NET Framework 4 vergleicht Entity Framework die aktuellen Werte nicht geänderter Eigenschaften mit den Werten, die von der Datenquelle zurückgegeben wurden. Wenn die Werte nicht identisch sind, wird die Eigenschaft als geändert markiert.
Nur geänderte Eigenschaften werden beim Aufrufen von ObjectContext.SaveChanges in der Datenquelle beibehalten.