MergeOption MergeOption MergeOption MergeOption Enum

Definizione

Specifica il modo in cui gli oggetti da caricare nel contesto dell'oggetto vengono uniti con gli oggetti già presenti nel contesto dell'oggetto.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
Ereditarietà

Campi

AppendOnly AppendOnly AppendOnly AppendOnly 0

Gli oggetti che non esistono nel contesto dell'oggetto vengono connessi al contesto.Objects that do not exist in the object context are attached to the context. Se un oggetto è già presente nel contesto, i valori corrente e originale delle relative proprietà nella voce non vengono sovrascritti con i valori dell'origine dati.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. Lo stato della voce dell'oggetto e lo stato delle proprietà dell'oggetto nella voce non cambiano.The state of the object's entry and state of properties of the object in the entry do not change. AppendOnly è l'opzione di unione predefinita.AppendOnly is the default merge option.

NoTracking NoTracking NoTracking NoTracking 3

Gli oggetti vengono mantenuti in uno stato Detached e non vengono rilevati nell'oggetto ObjectStateManager.Objects are maintained in a Detached state and are not tracked in the ObjectStateManager. Tuttavia, le entità generate da Entity FrameworkEntity Framework e le entità POCO con proxy mantengono un riferimento al contesto dell'oggetto per facilitare il caricamento di oggetti correlati.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

Gli oggetti che non esistono nel contesto dell'oggetto vengono connessi al contesto.Objects that do not exist in the object context are attached to the context. Se un oggetto è già nel contesto, i valori correnti e originali delle proprietà dell'oggetto nella voce vengono sovrascritti con i valori dell'origine dati.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. Lo stato della voce dell'oggetto viene impostato su Unchanged e nessuna proprietà viene contrassegnata come modificata.The state of the object's entry is set to Unchanged, no properties are marked as modified.

PreserveChanges PreserveChanges PreserveChanges PreserveChanges 2

Gli oggetti che non esistono nel contesto dell'oggetto vengono connessi al contesto.Objects that do not exist in the object context are attached to the context.

Commenti

Entity Framework gestisce solo una singola istanza di un oggetto con una chiave di entità specifico nella cache.The Entity Framework only maintains a single instance of an object with a specific entity key in the cache. Il EntityKey gli oggetti sono oggetti non modificabili che rappresentano l'identità dell'oggetto.The EntityKey objects are immutable objects that represent object's identity. Le chiavi dell'entità sono utilizzate per eseguire la risoluzione di identità nel contesto dell'oggetto.Entity keys are used to perform identity resolution in the object context. Per altre informazioni, vedere utilizzo di chiavi di entità.For more information, see Working with Entity Keys. Se è già stata rilevata un'entità con la stessa identità, i dati provenienti dall'origine dei dati e i dati già presenti nel gestore degli stati vengono uniti in base al MergeOption della query.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.

Altre informazioni su MergeOption.PreserveChangesAdditional information on MergeOption.PreserveChanges

Se lo stato dell'entità è EntityState.Unchanged, i valori corrente e originale nella voce vengono sovrascritti con i valori dell'origine dati.If the state of the entity is EntityState.Unchanged, the current and original values in the entry are overwritten with data source values. Lo stato dell'entità rimane EntityState.Unchanged e nessuna proprietà viene contrassegnata come modificata.The state of the entity remains EntityState.Unchanged and no properties are marked as modified.

Se lo stato dell'entità è EntityState.Modified, i valori correnti delle proprietà modificate non vengono sovrascritti con i valori dell'origine dati.If the state of the entity is EntityState.Modified, the current values of modified properties are not overwritten with data source values. I valori originali delle proprietà non modificate vengono sovrascritti con i valori dell'origine dati.The original values of unmodified properties are overwritten with the values from the data source.

In .NET Framework 4, Entity Framework consente di confrontare i valori correnti delle proprietà non modificate con i valori restituiti dall'origine dati.In .NET Framework 4, the Entity Framework compares the current values of unmodified properties with the values that were returned from the data source. Se i valori non sono gli stessi, la proprietà viene contrassegnata come modificata.If the values are not the same, the property is marked as modified.

In .NET Framework 3.5 SP1, Entity Framework non contrassegna la proprietà come modificata anche se il valore nell'origine dati è diverso.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.

Quando si chiama ObjectContext.SaveChanges solo le proprietà modificate vengono rese persistenti nell'origine dati.Only modified properties are persisted to the data source when you call ObjectContext.SaveChanges.

Per mantenere il comportamento di .NET Framework 3.5 SP1, impostare ObjectContextOptions.UseLegacyPreserveChangesBehavior a true.To preserve the .NET Framework 3.5 SP1 behavior, set ObjectContextOptions.UseLegacyPreserveChangesBehavior to true. L'opzione PreserveChanges può essere utilizzata per risolvere eccezioni di concorrenza ottimistica mantenendo le modifiche nel contesto locale.The PreserveChanges option can be used to resolve optimistic concurrency exceptions while preserving changes in the local context. Per altre informazioni, vedere salvataggio delle modifiche e gestione della concorrenza.For more information, see Saving Changes and Managing Concurrency.

Si applica a