【发布时间】:2010-01-26 13:25:23
【问题描述】:
我正在使用 NHibernate (v 2.1.0.4000) 并尝试使用事件侦听器进行更新操作。
我使用以下代码将侦听器添加到 Nhibernate 配置。
var configuration = new Configuration();
configuration.SetListener(ListenerType.Update, new UpdateListener());
_sessionFactory = configuration.BuildSessionFactory();
当我更新两个项目时,第一个项目没有到达侦听器的“PerformUpdate”功能。但是,在更新第二项时,正在调用该函数。
怎么会这样?
---已编辑---
在调试的时候发现在监听器的“OnSaveOrUpdate”上,正在执行如下代码:
object obj4 = session.PersistenceContext.UnproxyAndReassociate(@event.Entity);
@event.Entity = obj4;
@event.Entry = session.PersistenceContext.GetEntry(obj4);
我预计@event.Entry 为空,但它不为空并且状态为已加载。 调用 GetEntry 方法时应该真正发生什么?
【问题讨论】:
标签: nhibernate listeners