Nhibernate插入时应在添加事件监听器后更新

Cir*_*rem 1 nhibernate fluent-nhibernate

我有一个自定义EventListener连接到侦听SaveOrUpdates,现在每当我在我的对象上调用Session.SaveOrUpdate时它会在它应该更新时插入.

这是我的事件监听器:

public class CustomSaveEventListener : DefaultSaveEventListener
{

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

}
Run Code Online (Sandbox Code Playgroud)

以下是它的配置方法(流利地说):

 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();
Run Code Online (Sandbox Code Playgroud)

我需要事件监听器的原因是因为我需要对持久存在的任何/每个实体执行审计跟踪.

有没有人遇到过这个问题?任何见解将不胜感激.

Der*_*eer 5

您的问题是您正在替换DefaultSaveOrUpdateEventListener派生自的DefaultSaveEventListener更新,因此将每个更新视为保存.