0

私はEntityFrameworkを使用していますが、その機能の一部がまだ不明です。理解しにくい主なものは次のとおりです。

  • SubmitChanges処理する;
  • update-delete-insertメソッドを呼び出す順序。
  • の理解ObjectStateManager
  • 切り離さEntityStateれ、提出プロセスの一部です。

説明を提供するか、いくつかの役立つリンクを提供してください。

4

1 に答える 1

3

ObjectStateManager追跡対象エンティティに関する情報を公開するコンポーネントです。EFによって永続化できる各エンティティは、追跡=接続する必要があります。切り離されたエンティティはEFに認識されないため(追跡されません)、呼び出したときに変更が保存されませんSaveChanges(EFにはありませんSubmitChanges)。追跡は、エンティティまたは関係の初期状態とそれらに加えられた変更に関する情報を維持することで構成されます。また、エンティティのグローバル状態も含まれます。

SaveChangesを呼び出すときのプロセスは、変更を追跡するためにEFを構成した方法、エンティティを取得した方法、および行った変更によって異なります。

変更の追跡は、EFがコンテキストにアタッチされたエンティティに適用された変更を追跡できるようにする機能です(クエリによってロードされた各エンティティはデフォルトでアタッチされています)。EFには、変更追跡のバージョンが含まれています。

  • スナップショット-POCOのみ。EFはエンティティへの変更を追跡しませんが、呼び出すSaveChangesと、エンティティの保存状態(エンティティがロードされたときに取得)とエンティティの現在のデータを比較し、それに応じて状態を設定します。
  • 動的-EntityObjectベースのエンティティのネイティブであり、POCOの動的プロキシによって実現されます。アタッチされたエンティティが変更されるたびに、追跡されたエントリの変更がトリガーされ、それに応じてエンティティの状態が設定されます。電話をかけるとSaveChanges、状態はすでに設定されています。

データ変更操作の順序は、EF内部実装です。基本的な順序は、エンティティ間の依存関係が記述されているマッピングによって定義されます。

于 2011-11-14T13:25:53.860 に答える