2011-07-23 10 views
1

EFコンテキストのインスタンス化、オブジェクトのプッシュまたはオブジェクトのプル、オブジェクトの変更の完全な状態を追跡します(変更の追跡が有効な場合)。この時点まで、開発者はこれらの変更を行う責任がありました。しかし、SaveChangesが呼び出されると、これらのレコードはすべて一括して提出され、開発者は最終結果から免除され、エラー時にエラーメッセージを表示したり、完了時に呼び出しが成功したりすることはありません。Entity Framework SaveChanges - ビヘイビアをカスタマイズしますか?

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

ありがとうございました。

+0

どのようなカスタマイズですか? – Eranga

+0

質問を振り返って書き直してもらえますか?\ –

+0

SaveChangesプロセスをカスタマイズして、そのようなブラックボックスではない方法はありますか? - それはすべて...私はEFのやり方が気に入らない。あなたが実際に何が起こっているのかを知ることなく、100の変更を提出します... –

答えて

3

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

+0

これは正しいです。私はこれに言及しなかった、これは私が与えることを意味した方法だった。私は私の答えを削除しました。 upvoteを持ってください! – anon

関連する問題