2010-01-07 67 views
1

我有一个自定义EventListener监听SaveOrUpdates,现在只要我在对象上调用Session.SaveOrUpdate时它会插入它应该更新的时间。Nhibernate在添加Event Listener后插入时应该更新

这里是我的事件监听器:

public class CustomSaveEventListener : DefaultSaveEventListener 
{ 

    protected override object PerformSaveOrUpdate(SaveOrUpdateEvent @event) 
    { 
     return base.PerformSaveOrUpdate(@event); 
    } 

} 

这里是它是如何配置(流利):

SessionFactory = Fluently.Configure() 
       .Database(MsSqlConfiguration.MsSql2005.ConnectionString(c => c.Is(connString)).ShowSql().DoNot.UseReflectionOptimizer) 
       .Mappings(m => m.FluentMappings.AddFromAssemblyOf<INC_IncidentMap>()) 
       .ExposeConfiguration(c => c.EventListeners.SaveOrUpdateEventListeners = new ISaveOrUpdateEventListener[] { new CustomSaveEventListener() }) 
       .BuildConfiguration().BuildSessionFactory(); 

的原因,我需要的事件侦听器,因为我需要执行审计跟踪上任何/每个实体依然存在。

有没有人遇到过这个问题?任何有识之士将不胜感激。

回答

5

您的问题是,您将DefaultSaveOrUpdateEventListener替换为DefaultSaveEventListener中的一个,从而将每次更新视为保存。