私がオンラインで見た例のほとんどは、WinForms/WPF コンテキストでのオブジェクト変更の追跡を示しています。または、Web 上にある場合は、接続されたオブジェクトが使用されるため、各オブジェクトに加えられた変更を追跡できます。
私のシナリオでは、オブジェクトはデータ層を離れると切断されます (WCF のビジネス オブジェクトにマップされ、MVC アプリケーションの DTO にマップされます)。
ユーザーが MVC 上のオブジェクトに変更を加えた場合 (たとえば、1 つのフィールド プロパティを変更するなど)、その変更をビューから DB に送信するにはどうすればよいですか?
特定のオブジェクトに加えられた変更を保存する監査テーブルが必要です。保存したいのは、変更したプロパティのみのオブジェクトの前後の値です
私はこれを行ういくつかの方法を考えることができます
1)MVCレイヤー(またはjavascript?)のすべてのモデルの各プロパティにIsDirtyフラグを実装します。その情報をサービス層、そして最後にデータ層まで伝播します。
2) この変更追跡メカニズムをサービス層内に持つことは素晴らしいことですが、変更された値が MVC から返された後、「元の」値を追跡するにはどうすればよいでしょうか?
3) データベーストリガー? しかし、どうやって始めたらいいのかわからない。これは可能ですか?
n 層 mvc-wcf ソリューション用の既知のオブジェクト変更追跡実装はありますか?
監査テーブルの例:
Audit table
Id Object Property OldValue NewValue
--------------------------------------------------------------------------------------
1 Customer Name Bob Joe
2 Customer Age 21 22