MergeOption Wyliczenie

Definicja

Określa sposób, w jaki obiekty ładowane do kontekstu obiektu są scalane z obiektami, które znajdują się już w kontekście obiektu.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
Dziedziczenie
MergeOption

Pola

AppendOnly 0

Obiekty, które nie istnieją w kontekście obiektu, są dołączane do kontekstu.Objects that do not exist in the object context are attached to the context. Jeśli obiekt jest już w kontekście, bieżąca i oryginalna wartość właściwości obiektu w haśle nie są zastępowane wartościami źródła danych.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. Stan wpisu i stanu obiektu w haśle nie jest zmieniany.The state of the object's entry and state of properties of the object in the entry do not change. AppendOnly jest domyślną opcją scalania.AppendOnly is the default merge option.

NoTracking 3

Obiekty są utrzymywane w Detached stanie i nie są śledzone w ObjectStateManager .Objects are maintained in a Detached state and are not tracked in the ObjectStateManager. Jednak jednostki wygenerowane przez Entity Framework i jednostki POCO z serwerami proxy utrzymują odwołanie do kontekstu obiektu, aby ułatwić ładowanie powiązanych obiektów.However, Entity Framework-generated entities and POCO entities with proxies maintain a reference to the object context to facilitate loading of related objects.

OverwriteChanges 1

Obiekty, które nie istnieją w kontekście obiektu, są dołączane do kontekstu.Objects that do not exist in the object context are attached to the context. Jeśli obiekt jest już w kontekście, bieżąca i oryginalna wartość właściwości obiektu w tym wpisie są zastępowane wartościami źródła danych.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. Stan wpisu obiektu jest ustawiony na Unchanged , żadne właściwości nie są oznaczane jako zmodyfikowane.The state of the object's entry is set to Unchanged, no properties are marked as modified.

PreserveChanges 2

Obiekty, które nie istnieją w kontekście obiektu, są dołączane do kontekstu.Objects that do not exist in the object context are attached to the context.

Uwagi

Entity Framework obsługuje tylko pojedyncze wystąpienie obiektu z określonym kluczem jednostki w pamięci podręcznej.The Entity Framework only maintains a single instance of an object with a specific entity key in the cache. EntityKeyObiekty są niezmienne obiekty reprezentujące tożsamość obiektu.The EntityKey objects are immutable objects that represent object's identity. Klucze jednostek są używane do przeprowadzania rozpoznawania tożsamości w kontekście obiektu.Entity keys are used to perform identity resolution in the object context. Aby uzyskać więcej informacji, zobacz Praca z kluczami jednostek.For more information, see Working with Entity Keys. Jeśli jednostka o tej samej tożsamości jest już śledzona, dane pochodzące ze źródła danych i danych znajdujących się już w Menedżerze Stanów są scalane zgodnie z MergeOption kwerendą.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.

Dodatkowe informacje na temat MergeOption.PreserveChangesAdditional information on MergeOption.PreserveChanges

Jeśli stanem jednostki jest EntityState.Unchanged , bieżące i oryginalne wartości we wpisie są zastępowane wartościami źródła danych.If the state of the entity is EntityState.Unchanged, the current and original values in the entry are overwritten with data source values. Stan jednostki pozostaje EntityState.Unchanged niezmieniony, a żadne właściwości nie są oznaczane jako zmodyfikowane.The state of the entity remains EntityState.Unchanged and no properties are marked as modified.

Jeśli stanem jednostki jest EntityState.Modified , bieżące wartości zmodyfikowanych właściwości nie są zastępowane wartościami źródła danych.If the state of the entity is EntityState.Modified, the current values of modified properties are not overwritten with data source values. Oryginalne wartości właściwości niezmodyfikowanych są zastępowane wartościami ze źródła danych.The original values of unmodified properties are overwritten with the values from the data source.

W .NET Framework 4 Entity Framework porównuje bieżące wartości niezmodyfikowanych właściwości z wartościami zwróconymi ze źródła danych.In .NET Framework 4, the Entity Framework compares the current values of unmodified properties with the values that were returned from the data source. Jeśli wartości nie są takie same, właściwość jest oznaczona jako modyfikowana.If the values are not the same, the property is marked as modified.

W .NET Framework 3,5 z dodatkiem SP1 Entity Framework nie oznacza właściwości jako zmodyfikowane, nawet jeśli wartość w źródle danych jest różna.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.

Tylko zmodyfikowane właściwości są utrwalane w źródle danych podczas wywoływania ObjectContext.SaveChanges .Only modified properties are persisted to the data source when you call ObjectContext.SaveChanges.

Aby zachować zachowanie .NET Framework 3,5 z dodatkiem SP1, ustaw wartość ObjectContextOptions.UseLegacyPreserveChangesBehavior true .To preserve the .NET Framework 3.5 SP1 behavior, set ObjectContextOptions.UseLegacyPreserveChangesBehavior to true. PreserveChangesOpcja może służyć do rozpoznawania optymistycznych wyjątków współbieżności podczas zachowywania zmian w kontekście lokalnym.The PreserveChanges option can be used to resolve optimistic concurrency exceptions while preserving changes in the local context. Aby uzyskać więcej informacji, zobacz Zapisywanie zmian i Zarządzanie współbieżnością.For more information, see Saving Changes and Managing Concurrency.

Dotyczy