Я использую IPreUpdateEventListener
для целей аудита.Мое решение точно такое, как Айенде Рахиен говорит здесь .Примерно так:
public bool OnPreUpdate(PreUpdateEvent @event)
{
var audit = @event.Entity as IHaveAuditInformation;
if (audit == null)
return false;
var time = DateTime.Now;
var name = WindowsIdentity.GetCurrent().Name;
Set(@event.Persister, @event.State, "UpdatedAt", time);
Set(@event.Persister, @event.State, "UpdatedBy", name);
audit.UpdatedAt = time;
audit.UpdatedBy = name;
return false;
}
Мои проблемы в том, что я должен установить audit.UpdatedAt = time;
, чтобы иметь значение в моей сущности, но это загрязняет объект и вызывает еще одно обновление базы данных.Мне нужно новое значение в моем объекте, но я не хочу повторного обновления.Есть ли способ?