2010-01-07 44 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中的一個,從而將每次更新視爲保存。