MergeOption Enumeración

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
MergeOption

Campos

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 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 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 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

El Entity Framework solo mantiene una única instancia de un objeto con una clave de entidad específica en la memoria caché.The Entity Framework only maintains a single instance of an object with a specific entity key in the cache. Los 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 ya se está realizando el seguimiento de una entidad con la misma identidad, los datos procedentes del origen de datos y los datos que ya están en el administrador de estado se MergeOption combinan según el 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 sobreMergeOption.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, el Entity Framework compara los valores actuales de las propiedades sin modificar con los valores devueltos 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, el Entity Framework no marca la propiedad como modificada, aunque el valor del origen de datos sea 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 .NET Framework 3,5 SP1, establezca ObjectContextOptions.UseLegacyPreserveChangesBehavior en 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, vea Guardar cambios y administrar la simultaneidad.For more information, see Saving Changes and Managing Concurrency.

Se aplica a