Поделиться через


MergeOption Перечисление

Определение

Определяет, как объекты, загружаемые в контекст объекта, объединяются с объектами, которые уже находятся в этом контексте объекта.

public enum class MergeOption
public enum MergeOption
type MergeOption = 
Public Enum MergeOption
Наследование
MergeOption

Поля

AppendOnly 0

Объекты, которые не существуют в контексте объекта, присоединяются к контексту. Если объект уже находится в контексте, текущие и исходные значения свойств объекта в записи не переписываются значениями из источника данных. Состояние записи объекта и состояние свойств объекта в записи не меняется. Параметр AppendOnly является параметром слияния по умолчанию.

NoTracking 3

Объекты обслуживаются в состоянии Detached и не отслеживаются экземпляром ObjectStateManager. Однако сущности, созданные Entity Framework, и сущности POCO с прокси-серверами сохраняют ссылку на контекст объекта, чтобы упростить загрузку связанных объектов.

OverwriteChanges 1

Объекты, которые не существуют в контексте объекта, присоединяются к контексту. Если объект уже находится в контексте, текущие и исходные значения свойств объекта в записи переписываются значениями из источника данных. Состоянию записи объекта присваивается значение Unchanged, а свойства, отмеченные как измененные, отсутствуют.

PreserveChanges 2

Объекты, которые не существуют в контексте объекта, присоединяются к контексту.

Комментарии

Entity Framework поддерживает только один экземпляр объекта с определенным ключом сущности в кэше. Объекты EntityKey являются неизменяемыми объектами, представляющими идентификатор объекта. Ключи сущностей используются для выполнения разрешения удостоверения в контексте объекта. Дополнительные сведения см. в разделе Работа с ключами сущностей. Если сущность с таким же удостоверением уже отслеживается, данные, поступающие из источника данных, и данные, уже имеющиеся в диспетчере состояний, объединяются в соответствии с MergeOption запросом.

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

Если состояние сущности имеет значение EntityState.Unchanged, текущие и исходные значения в записи переписываются значениями из источника данных. Значение состояния сущности остается равным EntityState.Unchanged, а свойства, которые отмечены как измененные, отсутствуют.

Если состояние сущности имеет значение EntityState.Modified, текущие значения измененных свойств объекта не переписываются значениями из источника данных. Исходные значения свойств, которые не были изменены, переписываются значениями из источника данных.

В .NET Framework 4 Entity Framework сравнивает текущие значения неизмененных свойств со значениями, возвращенными из источника данных. Если значения отличаются, свойство отмечается как измененное.

При вызове метода ObjectContext.SaveChanges в источнике данных сохраняются только измененные свойства.

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