Я хочу отслеживать изменения в моей модели домена. Я знаю, что NHibernate ISession - это реализация шаблона UnitOfWork, поэтому он отслеживает эти изменения. Есть ли способ вытащить их, например, перед Commit () или Flush ()?
Я думаю, что перехватчики немного устарели. Пытаюсь использовать NHibernate Events. Я подписался на событие OnPreUpdate. Этот параметр имеет свойства State и OldState, но OldState всегда имеет значение null. Кто-нибудь знает, что OldState работает вообще?
Взгляните на II-рецептор NHibernate.
OnFlushDirty - покажет вам сохраненные свойства для обновленного объекта.
OnSave - покажет вам сохраненные свойства сохраненного объекта.
Вам просто нужно создать класс перехватчика, который реализует этот интерфейс, и когда вы настраиваете сеанс NHibernate, скажите ему использовать этот класс.
Вот довольно хорошая статья, чтобы помочь вам начать