我有一个自定义EventListener连接到侦听SaveOrUpdates,现在每当我在我的对象上调用Session.SaveOrUpdate时它会在它应该更新时插入。
这是我的事件监听器:
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();
我需要事件监听器的原因是因为我需要对持久存在的任何/每个实体执行审计跟踪。
有没有人遇到过这个问题?任何见解将不胜感激。
答案 0 :(得分:5)
您的问题是,您将DefaultSaveOrUpdateEventListener
替换为DefaultSaveEventListener
派生的{{1}},因此将每次更新视为保存。