C# NHibernate DefaultUpdateEventListener和事件的问题

C# NHibernate DefaultUpdateEventListener和事件的问题,c#,nhibernate,event-listener,C#,Nhibernate,Event Listener,我对NHibernate中的DefaultUpdateEventListener有问题。 我将更新2个对象,然后提交会话 第一个对象没有进入侦听器,第二个对象进入侦听器 所以我用反射器检查问题出在哪里 首先,NHibernate将在DefeultSaveOrUpdateEventListener中调用PerformSaveOrUpdate,我看到了 protected virtual object PerformSaveOrUpdate(SaveOrUpdateEvent @event) {

我对NHibernate中的DefaultUpdateEventListener有问题。 我将更新2个对象,然后提交会话

第一个对象没有进入侦听器,第二个对象进入侦听器

所以我用反射器检查问题出在哪里

首先,NHibernate将在DefeultSaveOrUpdateEventListener中调用PerformSaveOrUpdate,我看到了

protected virtual object PerformSaveOrUpdate(SaveOrUpdateEvent @event)
{
    switch (this.GetEntityState(@event.Entity, @event.EntityName, @event.Entry, @event.Session))
    {
        case EntityState.Persistent:
            return this.EntityIsPersistent(@event);

        case EntityState.Detached:
            this.EntityIsDetached(@event);
            return null;
    }
    return this.EntityIsTransient(@event);
}
两个对象的不同之处在于状态 第一个对象被分离,第二个对象被持久化

是什么使对象在NHibernate中持久化或分离

如果我知道这个例子中的区别,我希望我能在代码中解决这个问题


这两个对象的负载与会话相同。负载我解决了问题,实现了
公共覆盖void OnSaveOrUpdate(SaveOrUpdateEvent@event)

此事件将在PerformSaveOrUpdate(SaveOrUpdateEvent@event)之前命中

此时,对象是持久的还是分离的并不重要