【问题标题】:Tracking property names of revisions跟踪修订的属性名称
【发布时间】:2014-12-17 20:14:01
【问题描述】:

我目前正在尝试在 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 方法时,该对象与目标类型不同。

我怎样才能让它工作?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-08-25
      • 2013-01-18
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-12
      相关资源
      最近更新 更多