コード ファースト アプローチを使用して、MVC .NET アプリケーションの一部のデータベース オブジェクトの変更履歴を追跡する必要があります。
履歴テーブルの意味は次のとおりです。 http://database-programmer.blogspot.de/2008/07/history-tables.html
自分で SQL クエリを作成する場合は、履歴テーブルを使用します。しかし、コードファーストアプローチではSQLが生成されます...そして私はこのパラダイムに固執したいと思います.
目標は、変更/削除されたエントリのすべての「古い」リビジョンを、いくつかの追加情報 (タイムスタンプ、変更したユーザーなど) とともに保持する構造です。
何か案は?
よろしく、ステファン
より具体的には、コード例を次に示します。
public class Node {
public int NodeID { get; set; }
public string? data { get; set; } // sample data
}
public class NodeHistory {
public int NodeID { get; set; }
public string? data { get; set; }
public int UserID { get; set; }
public DataTime timestamp { get; set; }
}
私が必要としているのは、ノード構造をテーブル化するために変更が永続化されるたびに、NodeHistory にエントリを追加できるようにするための「フレームワーク」支援です。
つまり、「ノード」への変更が最後に保持されない場合 (ロールバックなど)、エントリも作成されるため、set-method をオーバーライドするだけでは解決策にはなりません。