Инвертировать информацию хранилища как нули для не обновляющихся свойств
Я занимаюсь разработкой mvc-приложения и использую беглый nhibernate и enverse для хранения информации в БД и для аудита моих данных.
Мой базовый класс для сущностей выглядит так:
[Audited]
public class EntityBase : IEntity
{
public virtual int ID { get; set; }
public virtual string CreatedBy { get; set; }
public virtual string ModifiedBy { get; set; }
public virtual DateTime CreatedDate { get; set; }
public virtual DateTime? ModifiedDate { get; set; }
public virtual bool IsActive { get; set; }
}
Мое свободное отображение:
internal class EntityMap<T> : ClassMap<T> where T:EntityBase
{
public EntityMap(string tableName = null)
{
Id(x => x.ID).DefaultStrategy<T>(tableName);
if (!string.IsNullOrEmpty(tableName))
base.Table(tableName);
Map(x => x.IsActive).Not.Nullable();
Map(x => x.CreatedDate).Not.Nullable().Not.Update().CustomType("Timestamp");
Map(x => x.CreatedBy).Not.Update();
Map(x => x.ModifiedDate).CustomType("Timestamp");
Map(x => x.ModifiedBy);
}
}
Когда я сохраняю каждую сущность в db, тогда выполняется действие по предварительной вставке, и оно устанавливает значения для createDate и madeBy.
У меня проблема при обновлении сущности. CreatedDate и CreatedBY не являются полями обновления, поэтому я не сохраняю эту информацию в моей модели представления, поэтому во время преобразования в модель / сущность у меня нет информации о creatDate и creationBy. В моей таблице у меня есть вся информация после редактирования и entitybase, но при аудите я получаю новую строку с пустыми CratedDate и CreatedBy.
Есть ли способ настроить Enverse чтобы не потерять эти данные?