我正在开发一个mvc应用程序,我正在使用流畅的nhibernate和enverse在db中存储信息并审核我的数据。
我的实体基类如下:
[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时,前插入操作正在运行,它为createdDate和createdBy设置值。
我在更新实体时遇到问题。 CreatedDate和CreatedBY不是更新字段,因此我不会将此信息存储在我的viewmodel中,因此在转换为模型/实体期间,a没有关于createdDate和createdBy的信息。在我的表中,我在编辑和实体库之后获得了所有信息,但在审计中,我收到了一个空行CratedDate和CreatedBy的新行。
有没有办法配置enverse不丢失这些数据?