加入NHibernate.将修订信息封装到受审计实体



在查询实体时,有没有一种简单的方法可以连接实体的最新修订信息?

另一种方法是将属性(使用Fluent NHibernate)映射到实体,例如entity.LatestRevisionDateTime属性。

这是必需的,因为我们有一些屏幕显示最新的修改日期时间和修改实体的用户。我们还要求至少有一个查询返回自特定日期以来已修改的实体。如果我们不需要加入内存(更少的DB往返,更少的内存),这将更容易,性能也会更好。

我们正在使用:

  • NHibernate 4.0.3.400
  • FluentHibernate 2.0.1.0
  • Hibernate Envers 2.0.0

要在一条语句中获取实体和修订信息,可以使用

session.Auditer().CreateQuery()
   .ForHistoryOf<YourEntityType, YourRevisionType>()
   .Add([some filters])
   .Results()

为了将最新/当前实体与修订对象放在一起,我认为这是有效的(AFK因此无法验证)

session.Auditer().CreateQuery()
   .ForHistoryOf<YourEntityType, YourRevisionType>()
   .Add(AuditEntity.RevisionNumber().Maximize().ComputeAggregationInInstanceContext())
   .Results()

最新更新