次の方法で共有


MergeOption 列挙型

定義

オブジェクト コンテキストに読み込まれるオブジェクトを、オブジェクト コンテキストに既に存在するオブジェクトとマージする方法を指定します。

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

フィールド

名前 説明
AppendOnly 0

オブジェクト コンテキストに存在しないオブジェクトは、コンテキストにアタッチされます。 オブジェクトが既にコンテキスト内にある場合、エントリ内のオブジェクトのプロパティの現在の値と元の値は、データ ソース値で上書きされません。 オブジェクトのエントリの状態と、エントリ内のオブジェクトのプロパティの状態は変更されません。 AppendOnly は既定のマージ オプションです。

OverwriteChanges 1

オブジェクト コンテキストに存在しないオブジェクトは、コンテキストにアタッチされます。 オブジェクトが既にコンテキスト内にある場合、エントリ内のオブジェクトのプロパティの現在の値と元の値は、データ ソース値で上書きされます。 オブジェクトのエントリの状態は Unchanged に設定され、プロパティは変更済みとしてマークされません。

PreserveChanges 2

オブジェクト コンテキストに存在しないオブジェクトは、コンテキストにアタッチされます。

NoTracking 3

オブジェクトは Detached 状態で保持され、 ObjectStateManagerでは追跡されません。 ただし、Entity Framework によって生成されたエンティティとプロキシを持つ POCO エンティティは、関連オブジェクトの読み込みを容易にするためにオブジェクト コンテキストへの参照を維持します。

注釈

Entity Framework では、キャッシュ内の特定のエンティティ キーを持つオブジェクトの 1 つのインスタンスのみが保持されます。 EntityKey オブジェクトは、オブジェクトの ID を表す不変オブジェクトです。 エンティティ キーは、オブジェクト コンテキストで ID 解決を実行するために使用されます。 同じ ID を持つエンティティが既に追跡されている場合、データ ソースからのデータと、状態マネージャーに既に存在するデータは、クエリの MergeOption に従ってマージされます。

追加情報 MergeOption.PreserveChanges

エンティティの状態が EntityState.Unchanged場合、エントリの現在の値と元の値はデータ ソース値で上書きされます。 エンティティの状態は EntityState.Unchanged のままであり、プロパティは変更済みとしてマークされません。

エンティティの状態が EntityState.Modifiedされている場合、変更されたプロパティの現在の値はデータ ソース値で上書きされません。 変更されていないプロパティの元の値は、データ ソースの値で上書きされます。

.NET Framework 4 では、Entity Framework は変更されていないプロパティの現在の値と、データ ソースから返された値を比較します。 値が同じでない場合、プロパティは変更済みとしてマークされます。

ObjectContext.SaveChangesを呼び出すと、変更されたプロパティのみがデータ ソースに保持されます。

適用対象