私はEntity Frameworkを使用していますが、その機能の一部は私にとってはまだ不明です。理解しにくい主なものは次のとおりです。ObjectStateManagerとDetachedエンティティの状態
SubmitChanges
プロセスです。- update-delete-insertメソッドを呼び出す順序。
- の理解
ObjectStateManager
- デタッチされた
EntityState
とそれはプロセスの提出の一部です。
説明を入力してください。
私はEntity Frameworkを使用していますが、その機能の一部は私にとってはまだ不明です。理解しにくい主なものは次のとおりです。ObjectStateManagerとDetachedエンティティの状態
SubmitChanges
プロセスです。ObjectStateManager
EntityState
とそれはプロセスの提出の一部です。説明を入力してください。
ObjectStateManager
は、追跡されるエンティティに関する情報を公開するコンポーネントです。 EFによって永続化できる各エンティティは、追跡する必要があります=添付されています。 DetachedエンティティはEFには不明です(追跡されていません)。SaveChanges
(EFにはSubmitChanges
はありません)を呼び出すと、その変更は保存されません。追跡は、エンティティまたはリレーションの初期状態に関する情報の維持と、それらに対する変更を行います。また、エンティティのグローバルな状態も含まれます。
SaveChangesを呼び出すときのプロセスは、変更を追跡するようにEFを設定する方法、エンティティを取得する方法、および行った変更によって異なります。
変更追跡は、コンテキストに添付されたエンティティ(クエリによって読み込まれた各エンティティはデフォルトで添付されています)に適用された変更を追跡する機能です。 EFには、変更追跡のバージョンが含まれています。
SaveChanges
を呼び出すと、(エンティティがロードされたときに取得された)エンティティの保存状態とエンティティの現在のデータを比較し、それに応じて状態を設定します。SaveChanges
に電話すると、すでに設定されている状態になります。データ変更操作の順序は、EF内部実装です。基本的な順序は、エンティティ間の依存関係が記述されているマッピングによって定義されます。
ありがとうございます。 ObjectStateに関するもう1つの質問:新しい項目(追加されたばかり)が 'Detached'状態にあり、' Added'にない理由は何ですか? –
新しいアイテムはどのように追加されますか? –
'SomeEntityCollection.AddNew(SomeNewEntity);'そして 'DomainContext.SubmitChanges'です。より正確な説明が必要な場合は、私はそれを提供することができます。 –