跟踪修订的属性名称

时间:2014-12-17 20:14:01

标签: c# asp.net-mvc nhibernate nhibernate-envers

我目前正在尝试在MVC应用中实现修订历史记录屏幕。我需要能够使用Envers检索每个修订中已更改的字段的名称。所以我在这里遵循指示:http://envers.bitbucket.org/#envers-tracking-modified-entities-revchanges

我正在使用第二个选项,因为我们有一个自定义修订实体。它看起来像这样:

[RevisionEntity(typeof(MyRevisionListener))]
public class RevisionEntity : DefaultTrackingModifiedEntitiesRevisionEntity
{
    public virtual Person User { get; set; }
}

如您所见,我继承自DefaultTrackingModifiedEntitiesRevisionEntity,以确保该类具有保存已修改实体名称的属性。

根据文档,这应创建一个名为RevChanges的表,其中存储此信息并参考修订表:

  

Envers提供了一个创建REVCHANGES表的简单机制   存储修改的持久对象的实体名称。单记录   封装修订标识符(REVINFO表的外键)   和一个字符串值。

我从未见过这张桌子。我尝试自己创建这样一个表以及一个相关的类并连接映射,但是我没有看到Envers如何知道将数据放入该表而没有我以某种方式配置它。我只是得到一个例外,说当在新类型上调用get方法时,该对象与目标类型不同。

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:0)

如果您使用自定义修订实体,则需要像使用普通实体一样进行映射。

http://envers.bitbucket.org/#revisionlog

相关问题