MergeOption MergeOption MergeOption MergeOption Enum

Определение

Определяет, как объекты, загружаемые в контекст объекта, объединяются с объектами, которые уже находятся в этом контексте объекта.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
Наследование

Поля

AppendOnly AppendOnly AppendOnly AppendOnly 0

Объекты, которые не существуют в контексте объекта, присоединяются к контексту.Objects that do not exist in the object context are attached to the context. Если объект уже находится в контексте, текущие и исходные значения свойств объекта в записи не переписываются значениями из источника данных.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. Состояние записи объекта и состояние свойств объекта в записи не меняется.The state of the object's entry and state of properties of the object in the entry do not change. Параметр AppendOnly является параметром слияния по умолчанию.AppendOnly is the default merge option.

NoTracking NoTracking NoTracking NoTracking 3

Объекты обслуживаются в состоянии Detached и не отслеживаются экземпляром ObjectStateManager.Objects are maintained in a Detached state and are not tracked in the ObjectStateManager. Однако для упрощения загрузки связанных объектов сущности, созданные в Entity FrameworkEntity Framework, и сущности POCO с прокси-объектами поддерживают ссылку на контекст объекта.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

Объекты, которые не существуют в контексте объекта, присоединяются к контексту.Objects that do not exist in the object context are attached to the context. Если объект уже находится в контексте, текущие и исходные значения свойств объекта в записи переписываются значениями из источника данных.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. Состоянию записи объекта присваивается значение Unchanged, а свойства, отмеченные как измененные, отсутствуют.The state of the object's entry is set to Unchanged, no properties are marked as modified.

PreserveChanges PreserveChanges PreserveChanges PreserveChanges 2

Объекты, которые не существуют в контексте объекта, присоединяются к контексту.Objects that do not exist in the object context are attached to the context.

Комментарии

Платформа Entity Framework поддерживает только один экземпляр объекта с определенным ключом сущности в кэше.The Entity Framework only maintains a single instance of an object with a specific entity key in the cache. EntityKey Объекты являются неизменяемыми объектами, которые представляют идентификаторы объектов.The EntityKey objects are immutable objects that represent object's identity. Ключи сущностей используются для выполнения разрешения удостоверения в контексте объекта.Entity keys are used to perform identity resolution in the object context. Дополнительные сведения см. в разделе работа с ключами сущностей.For more information, see Working with Entity Keys. Если сущность с тем же идентификатором уже отслеживается, данные, поступающие из источника данных и данные уже в диспетчере состояния объединяются в соответствии с MergeOption запроса.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.

Дополнительные сведения о MergeOption.PreserveChangesAdditional information on MergeOption.PreserveChanges

Если состояние сущности имеет значение EntityState.Unchanged, текущие и исходные значения в записи переписываются значениями из источника данных.If the state of the entity is EntityState.Unchanged, the current and original values in the entry are overwritten with data source values. Значение состояния сущности остается равным EntityState.Unchanged, а свойства, которые отмечены как измененные, отсутствуют.The state of the entity remains EntityState.Unchanged and no properties are marked as modified.

Если состояние сущности имеет значение EntityState.Modified, текущие значения измененных свойств объекта не переписываются значениями из источника данных.If the state of the entity is EntityState.Modified, the current values of modified properties are not overwritten with data source values. Исходные значения свойств, которые не были изменены, переписываются значениями из источника данных.The original values of unmodified properties are overwritten with the values from the data source.

В .NET Framework 4 Entity Framework сравнивает текущие значения свойств без изменений со значениями, которые были возвращены из источника данных.In .NET Framework 4, the Entity Framework compares the current values of unmodified properties with the values that were returned from the data source. Если значения отличаются, свойство отмечается как измененное.If the values are not the same, the property is marked as modified.

В .NET Framework 3.5 SP1 Entity Framework отмечает свойство как измененное, даже если значения в источнике данных не совпадают.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.

При вызове метода ObjectContext.SaveChanges в источнике данных сохраняются только измененные свойства.Only modified properties are persisted to the data source when you call ObjectContext.SaveChanges.

Чтобы сохранить поведение .NET Framework 3.5 SP1, установите ObjectContextOptions.UseLegacyPreserveChangesBehavior для true.To preserve the .NET Framework 3.5 SP1 behavior, set ObjectContextOptions.UseLegacyPreserveChangesBehavior to true. Параметр PreserveChanges может использоваться для разрешения исключений оптимистичного параллелизма при сохранении изменений в локальном контексте.The PreserveChanges option can be used to resolve optimistic concurrency exceptions while preserving changes in the local context. Дополнительные сведения см. в разделе сохранение изменений и управление параллелизмом.For more information, see Saving Changes and Managing Concurrency.

Применяется к