MergeOption 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指定如何将加载到对象上下文中的对象与对象上下文中的对象合并。
public enum class MergeOption
public enum MergeOption
type MergeOption =
Public Enum MergeOption
- 继承
字段
| 名称 | 值 | 说明 |
|---|---|---|
| AppendOnly | 0 | 对象上下文中不存在的对象将附加到上下文中。 如果对象已在上下文中,则不会使用数据源值覆盖条目中对象的属性的当前值和原始值。 对象条目的状态和条目中对象的属性状态不会更改。 AppendOnly 是默认合并选项。 |
| OverwriteChanges | 1 | 对象上下文中不存在的对象将附加到上下文中。 如果对象已在上下文中,则条目中对象的属性的当前值和原始值将被数据源值覆盖。 对象的条目的状态设置为 Unchanged,不会将任何属性标记为已修改。 |
| PreserveChanges | 2 | 对象上下文中不存在的对象将附加到上下文中。 |
| NoTracking | 3 | 对象以状态进行维护 |
注解
Entity Framework 仅维护缓存中具有特定实体键的对象单个实例。 这些 EntityKey 对象是表示对象的标识的不可变对象。 实体键用于在对象上下文中执行标识解析。 如果已跟踪具有相同标识的实体,则会根据 MergeOption 查询合并来自数据源的数据以及状态管理器中已有的数据。
有关的其他信息 MergeOption.PreserveChanges
如果实体的状态为 EntityState.Unchanged,则条目中的当前值和原始值将被数据源值覆盖。 实体的状态保持不变 EntityState.Unchanged ,且未将任何属性标记为已修改。
如果实体的状态为 EntityState.Modified,则修改属性的当前值不会被数据源值覆盖。 未修改属性的原始值将被数据源中的值覆盖。
在 .NET Framework 4 中,Entity Framework 将未修改属性的当前值与从数据源返回的值进行比较。 如果值不相同,则属性将标记为已修改。
调用时 ObjectContext.SaveChanges,仅将修改的属性保存到数据源。