分かってる。なぜ誰もがそれをしたいのですか?アプリケーションはすでにデータの変更を監査していますが、現在、ビジネスはすべての読み取りも監査したいと考えています (説得力のあるユーザー ストーリーはありません)。私は彼らに反対するすべての議論を与えましたが、彼らは主張します.
EF/DbContext は、データベースから返されたすべてのレコードを傍受し、監査証跡にエントリを書き込むのに適した拡張ポイントを提供しますか? または、これを行う別の賢明な方法はありますか?
分かってる。なぜ誰もがそれをしたいのですか?アプリケーションはすでにデータの変更を監査していますが、現在、ビジネスはすべての読み取りも監査したいと考えています (説得力のあるユーザー ストーリーはありません)。私は彼らに反対するすべての議論を与えましたが、彼らは主張します.
EF/DbContext は、データベースから返されたすべてのレコードを傍受し、監査証跡にエントリを書き込むのに適した拡張ポイントを提供しますか? または、これを行う別の賢明な方法はありますか?
ObjectContext.ObjectMaterializedを使用できます。MSDN スニペット:
クエリまたは読み込み操作の一部として、データ ソース内のデータから新しいエンティティ オブジェクトが作成されるときに発生します。
このイベントは、すべてのスカラー プロパティ、複合プロパティ、および参照プロパティがオブジェクトに設定された後、コレクションが読み込まれる前に発生します。同じキー値を持つオブジェクトがオブジェクト コンテキストに存在する場合、Entity Framework はオブジェクトを再作成せず、このイベントは発生しません。
ただし、これは、EF 実装を介して Db から読み取られた項目のみを追跡します。