私は素晴らしい記事を利用しています:
http://ayende.com/blog/3987/nhibernate-ipreupdateeventlistener-ipreinserteventlistener
例とまったく同じようにOnPreInsertを実装しました。ただし、エンティティを更新するときの監査要件は、データベースに「履歴」エントリを作成することです。まあ言ってみれば:
- Person オブジェクトを取得します
修正します
personObj.FirstName = Console.ReadLine();
次に、エンティティを保存します。ここで、IPreUpdateEventListener.OnPreUpdateで、Entity と State のUpdatedAtとUpdatedByプロパティを変更し (記事のように)、古い値 (変更前のFirstName )を含む新しいレコードをデータベースに追加する必要があります。
PreUpdateEventにOldState配列が含まれていることがわかりましたが、 OldState配列からPersonオブジェクトを作成して保存する方法がわかりません。
どうすれば必要なものを達成できますか?
ありがとう!