MergeOption 枚举

定义

指定加载到对象上下文中的对象与对象上下文中的已有对象的合并方式。

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

字段

AppendOnly 0

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

NoTracking 3

对象保持为 Detached 状态,也不在 ObjectStateManager 中进行跟踪。 但是,实体框架生成的实体和具有代理的 POCO 实体会维护对对象上下文的引用,以便于加载相关对象。

OverwriteChanges 1

将对象上下文中不存在的对象附加到上下文。 如果某个对象已存在于上下文中,则不会使用数据源值覆盖该对象的属性在相应项中的当前值和原始值。 该对象的对应项的状态设置为 Unchanged,并且不会将任何属性标记为已修改。

PreserveChanges 2

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

注解

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

有关 的其他信息 MergeOption.PreserveChanges

如果该实体的状态为 EntityState.Unchanged,则会使用数据源值覆盖对应项中的当前值和原始值。 该实体的状态保持为 EntityState.Unchanged,并且不会将任何属性标记为已修改。

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

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

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

适用于