要件は単純だと思われます。データが変更されると、変更を監査します。EFまたはSQLは、データの変更を監査するためのより良い選択ですか?
ここで式にはいくつかの重要な部分です:
- データは自分のアプリケーションで複数のテーブル(。いくつかのクロス参照テーブル)をまたがります。
- 私のDTOは深く、条件付きでナビゲーションプロパティが設定されています。
- ロードすると、元のDTOを元の値でコピーします。
- 保存が要求されると、元のDTOに変更が含まれます。
- 理想的には、外部キーはID番号ではなく有用なテキストのように読み込まれます。
TFSのクールヒストリ機能とは異なり、多くの関連テーブルと条件付き子エンティティのため、私のほうが複雑に思えます。が
- 私はオブジェクトを反映するためにC#を使用して、前/後の記録を作成することができます。
は、私は三つの可能性(これまで)を参照してください。
- SQL 2008R2でトリガを使用して変更をキャッチし、前後のレコードを結合することができました。
- 私は生の前後のオブジェクトを格納して、SQL 2008R2でそれらを解析させることができました。
注意:現在、私はSQL 2008R2のCDCはあまりにも多くの選択肢があります。私は本当に私が作ることができるものを探していますが、私は今私の心が何にでも開いていることを認めています。
私の質問
私はこの建物を始める前に: は他にどのように誰もが複雑なEF DTOを監査処理しますか?
低(ish)テックソリューションはありますか?
ありがとうございます。 StackOverflowの上ですでに
関連ではなく、完全に関連の質問:Implementing Audit Log/Change History with MVC & Entity FrameworkとCreate Data Audit in SQL Serverとhttps://stackoverflow.com/questions/5773419/how-to-audit-many-to-many-relationship-in-entity-frameworkとMaintaining audit log for entities split across multiple tablesとLinq to SQL Audit Trail/Audit Log: should I use triggers or doddleaudit?は答えを提供していません。
SQL Serverのネイティブ監査機能を選択肢として表示しない理由がわかりません。 –
申し訳ありません@Craig、あなたは私のDBAについて間違った仮定をしました。これは単に現在のスキルセットの外にあり、ソリューションチームがIT部門から要求する悪夢(そして無限の遅れ)を作り出します。ただ現実だから、私はそれを除外したのです。 –
まあ、彼らがそれを知らない場合でも、それは少なくとも文書化されています。 –