Я использую NHibernate (v 2.1.0.4000) и пытаюсь использовать прослушиватель событий для действия обновления.
Я использовал следующий код для добавления прослушивателя в конфигурацию Nhibernate.
var configuration = new Configuration();
configuration.SetListener(ListenerType.Update, new UpdateListener());
_sessionFactory = configuration.BuildSessionFactory();
Когда я обновляю два элемента, первый элемент не попадает в функцию «PerformUpdate» слушателя. Однако при обновлении второго элемента вызывается функция.
Как это может произойти?
--- Edited ---
Во время отладки я обнаружил, что в «OnSaveOrUpdate» Слушателя выполняется следующий код:
object obj4 = session.PersistenceContext.UnproxyAndReassociate(@event.Entity);
@event.Entity = obj4;
@event.Entry = session.PersistenceContext.GetEntry(obj4);
Я ожидал, что @ event.Entry был нулевым, но он не был нулевым и имел статус Loaded.
Что в действительности должно происходить при вызове метода GetEntry?