使用nhibernate envers在父实体中存储以前的版本

时间:2012-11-14 12:00:19

标签: nhibernate fluent-nhibernate hibernate-envers

我正在使用nhibernate envers审核我的数据/保存以前的版本。

我想要做的是将以前的版本存储在父实体中 像这样:

public abstract class BookBase
{
    public virtual int ID { get; set; }
    public virtual string Name { get; set; }
    public virtual string Author { get; set; }
}

public class Book : BookBase
{
    public virtual ICollection<BookRevision> PreviousVersions { get; set; }
}

public class BookRevision : BookBase
{
    public virtual int VersionNumber { get; set; }
    public virtual DateTime VersionTimeStamp { get; set; }
}

这可能是envers nhibernate(使用流畅的nHibernate进行映射)
我的envers配置需要看起来像什么? 我的映射需要看起来像什么?

1 个答案:

答案 0 :(得分:1)

Envers为您处理审核,您不必在域模型中定义自己的审核类型。

定义(并将其映射为正常)您的实体

public class Book
{
    public virtual int ID { get; set; }
    public virtual string Name { get; set; }
    public virtual string Author { get; set; }
}

如果您想对图书修改进行审核,请配置像这样的Envers

var enversCfg = new FluentConfiguration();
enversCfg.Audit<Book>();
yourNhCoreConfiguration.IntegrateWithEnvers(enversCfg);