MergeOption MergeOption MergeOption MergeOption Enum

Definición

Especifica cómo se combinan los objetos que se cargan en el contexto del objeto con los objetos que ya se encuentran en dicho contexto.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
Herencia

Campos

AppendOnly AppendOnly AppendOnly AppendOnly 0

Los objetos que no existen en el contexto del objeto se adjuntan al contexto.Objects that do not exist in the object context are attached to the context. Si un objeto ya está en el contexto, los valores actual y original de las propiedades del objeto de la entrada no se sobrescriben con valores del origen de datos.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. El estado de la entrada del objeto y estado de las propiedades del objeto en la entrada no cambia.The state of the object's entry and state of properties of the object in the entry do not change. AppendOnly es la opción de combinación predeterminada.AppendOnly is the default merge option.

NoTracking NoTracking NoTracking NoTracking 3

Los objetos se mantienen en un estado Detached y no se realiza ningún seguimiento de ellos en ObjectStateManager.Objects are maintained in a Detached state and are not tracked in the ObjectStateManager. Sin embargo, las entidades generadas por Entity FrameworkEntity Framework y las entidades POCO con proxys mantienen una referencia al contexto del objeto para facilitar la carga de objetos relacionados.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

Los objetos que no existen en el contexto del objeto se adjuntan al contexto.Objects that do not exist in the object context are attached to the context. Si un objeto ya está en el contexto, los valores actual y original de las propiedades del objeto de la entrada se sobrescriben con valores del origen de datos.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. El estado de la entrada del objeto se establece en Unchanged y ninguna propiedad se marca como modificada.The state of the object's entry is set to Unchanged, no properties are marked as modified.

PreserveChanges PreserveChanges PreserveChanges PreserveChanges 2

Los objetos que no existen en el contexto del objeto se adjuntan al contexto.Objects that do not exist in the object context are attached to the context.

Comentarios

Entity Framework solo mantiene una sola instancia de un objeto con una clave de entidad concreta en la memoria caché.The Entity Framework only maintains a single instance of an object with a specific entity key in the cache. El EntityKey objetos son objetos inmutables que representan la identidad del objeto.The EntityKey objects are immutable objects that represent object's identity. Las claves de entidad se utilizan para llevar a cabo la resolución de identidad en el contexto del objeto.Entity keys are used to perform identity resolution in the object context. Para obtener más información, consulte trabajar con claves de entidad.For more information, see Working with Entity Keys. Si una entidad con la misma identidad ya que se realiza el seguimiento, los datos procedentes del origen de datos y los datos ya está en el Administrador de estado se combinan según la MergeOption de la consulta.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.

Información adicional acerca de MergeOption.PreserveChangesAdditional information on MergeOption.PreserveChanges

Si el estado de la entidad es EntityState.Unchanged, los valores actual y original de la entrada se sobrescriben con valores del origen de datos.If the state of the entity is EntityState.Unchanged, the current and original values in the entry are overwritten with data source values. El estado de la entidad sigue siendo EntityState.Unchanged y ninguna propiedad se marca como modificada.The state of the entity remains EntityState.Unchanged and no properties are marked as modified.

Si el estado de la entidad es EntityState.Modified, los valores actuales de las propiedades modificadas no se sobrescriben con valores del origen de datos.If the state of the entity is EntityState.Modified, the current values of modified properties are not overwritten with data source values. Los valores originales de las propiedades no modificadas se sobrescriben con los valores del origen de datos.The original values of unmodified properties are overwritten with the values from the data source.

En .NET Framework 4, Entity Framework compara los valores actuales de las propiedades no modificadas con los valores que se han devuelto desde el origen de datos.In .NET Framework 4, the Entity Framework compares the current values of unmodified properties with the values that were returned from the data source. Si los valores no son iguales, la propiedad se marca como modificada.If the values are not the same, the property is marked as modified.

En .NET Framework 3.5 SP1, Entity Framework no marca la propiedad como modificada, incluso si el valor del origen de datos es diferente.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.

Solo las propiedades modificadas se conservan en el origen de datos al llamar a ObjectContext.SaveChanges.Only modified properties are persisted to the data source when you call ObjectContext.SaveChanges.

Para conservar el comportamiento de .NET Framework 3.5 SP1, establezca ObjectContextOptions.UseLegacyPreserveChangesBehavior a true.To preserve the .NET Framework 3.5 SP1 behavior, set ObjectContextOptions.UseLegacyPreserveChangesBehavior to true. La opción PreserveChanges se puede utilizar para resolver las excepciones de simultaneidad optimista al tiempo que se conservan los cambios en el contexto local.The PreserveChanges option can be used to resolve optimistic concurrency exceptions while preserving changes in the local context. Para obtener más información, consulte guardar los cambios y administración de la simultaneidad.For more information, see Saving Changes and Managing Concurrency.

Se aplica a