1

私は素晴らしい記事を利用しています:

http://ayende.com/blog/3987/nhibernate-ipreupdateeventlistener-ipreinserteventlistener

例とまったく同じようにOnPreInsertを実装しました。ただし、エンティティを更新するときの監査要件は、データベースに「履歴」エントリを作成することです。まあ言ってみれば:

  • Person オブジェクトを取得します
  • 修正します

    personObj.FirstName = Console.ReadLine();

  • 次に、エンティティを保存します。ここで、IPreUpdateEventListener.OnPreUpdateで、Entity と State のUpdatedAtUpdatedByプロパティを変更し (記事のように)、古い値 (変更前のFirstName )を含む新しいレコードをデータベースに追加する必要があります。

PreUpdateEventにOldState配列が含まれていることがわかりましたが、 OldState配列からPersonオブジェクトを作成して保存する方法がわかりません。

どうすれば必要なものを達成できますか?

ありがとう!

4

1 に答える 1

1

ただし、OldState配列からPersonオブジェクトを作成して保存する方法がわかりません。

NHibernate Enversを見たことがありますか? それはまさにそれを行います。

何らかの理由でこのフレームワークを使用したくない場合は、そのソース コードを参照してください。

于 2012-09-05T17:21:43.860 に答える