MergeOption 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オブジェクト コンテキストに読み込まれているオブジェクトを、オブジェクト コンテキストに既に存在するオブジェクトにマージする方法を指定します。
public enum class MergeOption
public enum MergeOption
type MergeOption =
Public Enum MergeOption
- 継承
フィールド
AppendOnly | 0 | オブジェクト コンテキストに存在しないオブジェクトは、コンテキストにアタッチされます。 オブジェクトが既にコンテキストに存在する場合、エントリに格納されているオブジェクトのプロパティの現在の値と元の値が、データ ソースの値で上書きされることはありません。 オブジェクトのエントリの状態と、エントリ内にあるオブジェクトのプロパティの状態は変化しません。 AppendOnly は既定のマージ オプションです。 |
NoTracking | 3 | オブジェクトは、Detached 状態で保持され、ObjectStateManager では追跡されません。 ただし、Entity Framework によって生成されたエンティティとプロキシを持つ POCO エンティティは、関連オブジェクトの読み込みを容易にするために、オブジェクト コンテキストへの参照を保持します。 |
OverwriteChanges | 1 | オブジェクト コンテキストに存在しないオブジェクトは、コンテキストにアタッチされます。 オブジェクトが既にコンテキストに存在する場合、エントリに格納されているオブジェクトのプロパティの現在の値と元の値が、データ ソースの値で上書きされます。 オブジェクトのエントリの状態は Unchanged に設定され、いずれのプロパティも変更済みとしてマークされません。 |
PreserveChanges | 2 | オブジェクト コンテキストに存在しないオブジェクトは、コンテキストにアタッチされます。 |
注釈
Entity Framework では、キャッシュ内の特定のエンティティ キーを持つオブジェクトの 1 つのインスタンスのみが保持されます。 オブジェクトは EntityKey 、オブジェクトの ID を表す不変オブジェクトです。 エンティティ キーは、オブジェクト コンテキスト内の ID 解決を実行するために使用されます。 詳細については、「 エンティティ キーの操作」を参照してください。 同じ ID を持つエンティティが既に追跡されている場合、データ ソースから取得されたデータと、状態マネージャーに既に存在するデータは、クエリの に MergeOption 従ってマージされます。
に関する追加情報 MergeOption.PreserveChanges
エンティティの状態が EntityState.Unchanged の場合、エントリに格納されている現在の値と元の値が、データ ソースの値で上書きされます。 エントリの状態は EntityState.Unchanged のままとなり、いずれのプロパティも変更済みとしてマークされません。
エンティティの状態が EntityState.Modified の場合、変更されているプロパティの現在の値は、データ ソースの値で上書きされません。 変更されていないプロパティの元の値は、データ ソースからの値で上書きされます。
.NET Framework 4 では、Entity Framework は変更されていないプロパティの現在の値と、データ ソースから返された値を比較します。 両者の値が異なる場合、プロパティは変更済みとしてマークされます。
変更されているプロパティだけが、ObjectContext.SaveChanges を呼び出したときにデータ ソースに永続化されます。
適用対象
.NET