Проблема отслеживания состояния прослушивателя аудита NHibernate - PullRequest
1 голос
/ 15 марта 2012

У меня есть прослушиватели с предварительной вставкой и обновлением, основанные на этом посте Ayende , которые работали до сих пор. Я только что преобразовал внутреннюю часть своего приложения из веб-API WCF в веб-API ASP.NET, и у меня возникла проблема.

(Я упоминаю только преобразование, поскольку оно изменилось только потому, что все работало правильно.)

Я могу вставлять сущности без проблем и обновлять существующие сущности без проблем. Тем не менее, в случае добавления сущности таким способом, который приводит к вставке SQL с последующим обновлением SQL, аудит завершается неудачей.

Проверка @event.State в методе OnPreUpdate показывает дату CreatedOn как DateTime.MinValue, даже после того, как она была правильно установлена ​​в методе OnPreInsert.

Я предполагаю, что @event.State для операторов вставки и обновления SQL создается до вызова слушателей, и хотя обновленное состояние объекта доступно в методе OnPreUpdate, @event.State являются двумя разными вещи.

Мой текущий обходной путь - сброс CreatedOn в методе OnPreUpdate с использованием данных создания в сущности, но это не так.

Кто-нибудь еще испытывал это? Это ошибка в NHibernate или ожидаемое поведение?

...