私はDDDとNHibernateを使ってドメインオブジェクトを保持しています。私のデータベースでは、エンティティに関連するすべてのテーブルには、監査追跡に使用される4つの余分な列(CreatedBy、UpdatedBy、CreatedDate、UpdatedDate)があります。私は集約ルートを保存できるリポジトリパターンを使用しています。 NHibernateが集約ルート上のエンティティを保存しようとすると、エンティティに監査プロパティが設定されていないため、SQL DateTimeエラーが発生します。保存する直前にオブジェクトのプロパティを設定するNHibernateの方法はありますか?保存時にNHibernateのプロパティが自動的に設定される
ここは少しの例です。私は集計ルートであるOrderオブジェクトを持っています。注文の子であるOrderNoteオブジェクトもあります。 OrderNoteをOrderに追加してOrderを保存すると、CreatedDate/UpdatedDateがDateTime.MinValueに設定され、SQL DateTimeオーバーフローが発生するため、例外がスローされます。これらの監査列は永続性の一部であり、問題のドメインに関連していないため、ノートを追加したときにOrder集約ルートでこれらのプロパティを設定しないようにします。監査列/プロパティは、ドメインではなく永続性フレームワークによってのみ認識されるべきです。私は保存または更新時にこれらのプロパティを設定するようにNHibernateに指示することができたいと思います。これを行う方法はありますか?
http://www.nhforge.org/doc/nh/en/index.html#manipulatingdata-interceptors(9.10、リンクは常に動作しません):
素晴らしいです。それがまさに私が探しているものです。私はNHibernateには新しく、この機能を知らなかった。私は保護されたプロパティで実装されたIAuditableインターフェイスを持っているので、ドメインはそれらを見ることができません。 – awilinsk