通过


MergeOption 枚举

定义

指定如何将加载到对象上下文中的对象与对象上下文中的对象合并。

public enum class MergeOption
public enum MergeOption
type MergeOption = 
Public Enum MergeOption
继承
MergeOption

字段

名称 说明
AppendOnly 0

对象上下文中不存在的对象将附加到上下文中。 如果对象已在上下文中,则不会使用数据源值覆盖条目中对象的属性的当前值和原始值。 对象条目的状态和条目中对象的属性状态不会更改。 AppendOnly 是默认合并选项。

OverwriteChanges 1

对象上下文中不存在的对象将附加到上下文中。 如果对象已在上下文中,则条目中对象的属性的当前值和原始值将被数据源值覆盖。 对象的条目的状态设置为 Unchanged,不会将任何属性标记为已修改。

PreserveChanges 2

对象上下文中不存在的对象将附加到上下文中。

NoTracking 3

对象以状态进行维护 ,且未在 < a0 /a0> 中跟踪。 但是,具有代理的 Entity Framework 生成的实体和 POCO 实体维护对对象上下文的引用,以方便加载相关对象。

注解

Entity Framework 仅维护缓存中具有特定实体键的对象单个实例。 这些 EntityKey 对象是表示对象的标识的不可变对象。 实体键用于在对象上下文中执行标识解析。 如果已跟踪具有相同标识的实体,则会根据 MergeOption 查询合并来自数据源的数据以及状态管理器中已有的数据。

有关的其他信息 MergeOption.PreserveChanges

如果实体的状态为 EntityState.Unchanged,则条目中的当前值和原始值将被数据源值覆盖。 实体的状态保持不变 EntityState.Unchanged ,且未将任何属性标记为已修改。

如果实体的状态为 EntityState.Modified,则修改属性的当前值不会被数据源值覆盖。 未修改属性的原始值将被数据源中的值覆盖。

在 .NET Framework 4 中,Entity Framework 将未修改属性的当前值与从数据源返回的值进行比较。 如果值不相同,则属性将标记为已修改。

调用时 ObjectContext.SaveChanges,仅将修改的属性保存到数据源。

适用于