MergeOption Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает, как объекты загружаются в контекст объекта, объединяются с объектами, уже имеющимися в контексте объекта.
public enum class MergeOption
public enum MergeOption
type MergeOption =
Public Enum MergeOption
- Наследование
Поля
| Имя | Значение | Описание |
|---|---|---|
| AppendOnly | 0 | Объекты, которые не существуют в контексте объекта, присоединяются к контексту. Если объект уже находится в контексте, текущие и исходные значения свойств объекта в записи не перезаписываются со значениями источника данных. Состояние записи объекта и состояния свойств объекта в записи не изменяется. AppendOnly — параметр слияния по умолчанию. |
| OverwriteChanges | 1 | Объекты, которые не существуют в контексте объекта, присоединяются к контексту. Если объект уже находится в контексте, текущие и исходные значения свойств объекта в записи перезаписываются со значениями источника данных. Состояние записи объекта имеет Unchangedзначение , свойства не помечены как измененные. |
| PreserveChanges | 2 | Объекты, которые не существуют в контексте объекта, присоединяются к контексту. |
| NoTracking | 3 | Объекты хранятся в Detached состоянии и не отслеживаются в объекте ObjectStateManager. Однако созданные Entity Framework сущности и сущности POCO с прокси-серверами поддерживают ссылку на контекст объекта, чтобы упростить загрузку связанных объектов. |
Комментарии
Entity Framework поддерживает только один экземпляр объекта с определенным ключом сущности в кэше. Объекты EntityKey являются неизменяемыми объектами, представляющими удостоверение объекта. Ключи сущностей используются для разрешения удостоверений в контексте объекта. Если сущность с тем же удостоверением уже отслеживается, данные, поступающие из источника данных, и данные, уже имеющиеся в диспетчере состояний, объединяются в соответствии с запросом MergeOption .
Дополнительные сведения MergeOption.PreserveChanges
Если состояние сущности равно EntityState.Unchanged, текущие и исходные значения в записи перезаписываются со значениями источника данных. Состояние сущности остается EntityState.Unchanged , и свойства не помечены как измененные.
Если состояние сущности равно EntityState.Modified, текущие значения измененных свойств не перезаписываются со значениями источника данных. Исходные значения неизмененных свойств перезаписываются со значениями из источника данных.
В .NET Framework 4 Entity Framework сравнивает текущие значения неизмененных свойств со значениями, возвращаемыми из источника данных. Если значения не совпадают, свойство помечается как измененное.
При вызове ObjectContext.SaveChangesсохраняются только измененные свойства в источнике данных.