Инвертировать информацию хранилища как нули для не обновляющихся свойств

Я занимаюсь разработкой 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 чтобы не потерять эти данные?

0 ответов

Другие вопросы по тегам