MergeOption Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет, как объекты, загружаемые в контекст объекта, объединяются с объектами, которые уже находятся в этом контексте объекта.
public enum class MergeOption
public enum MergeOption
type MergeOption =
Public Enum 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 в источнике данных сохраняются только измененные свойства.