Nhibernate Вставка, когда следует обновить после добавления Event Listener - PullRequest
1 голос
/ 07 января 2010

У меня есть пользовательский 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();

Причина, по которой мне нужен прослушиватель событий, заключается в том, что мне необходимо выполнить отслеживание аудита для любого / каждого сохраняемого объекта.

Кто-нибудь сталкивался с этой проблемой? Любая идея будет принята с благодарностью.

1 Ответ

5 голосов
/ 08 января 2010

Ваша проблема в том, что вы заменяете DefaultSaveOrUpdateEventListener на тот, который получен из DefaultSaveEventListener, таким образом, каждое обновление рассматривается как сохранение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...