1

したがって、EFコンテキストをインスタンス化し、オブジェクトをプッシュインまたはプルアウトすると、オブジェクトの変更の完全な状態が追跡されます(変更の追跡がオンの場合)。この時点まで、開発者はこれらの変更を行う責任がありました。ただし、SaveChangesが呼び出されると、これらのレコードはすべて一括で送信され、開発者は最終結果から権利を剥奪され、エラー時にエラーメッセージを保存するか、完了時に呼び出しが成功します。

SaveChangesプロセスをカスタマイズして、そのようなブラックボックスにならないようにする方法はありますか?理想的には、プロセスをカスタマイズできることは、特に私のアプリケーションアーキテクチャで、私にとって本当に物事を開くでしょう。

ありがとう。

4

1 に答える 1

3

イベントの処理は 1 つの方法ですが、より複雑な処理では、派生コンテキストで操作自体をSavingChangesオーバーライドできます。SaveChanges違いは、ジョブを実行するSavingChanges前にカスタム ロジックを配置できますSaveChangesが、オーバーライドSaveChangesする場合は、呼び出しの前後にカスタム ロジックを配置できることbase.SaveChangesです。保存中のカスタム ロジックのサポートは改善されていません。保存にカスタム SQL を使用できるのは、ストアド プロシージャをエンティティのデータ変更操作にマップする場合のみです。

于 2011-07-23T09:32:20.650 に答える