Присоединение NHibernate.Envers информации о проверке к проверяемому объекту

Существует ли простой способ присоединения последней информации о ревизии для сущности при запросе сущности?

Другим способом было бы сопоставление свойств (используя Fluent NHibernate) с сущностью, например entity.LatestRevisionDateTime имущество.

Это необходимо, так как у нас есть несколько экранов, которые отображают дату последней модификации и пользователя, которым объект был изменен. Нам также требуется по крайней мере один запрос, который возвращает объекты, которые были изменены с определенной даты. Это было бы намного проще и лучше с точки зрения производительности, если бы нам не нужно было объединяться в памяти (меньше обращений к БД, меньше памяти).

Мы используем:

  • NHibernate 4.0.3.400
  • FluentNHibernate 2.0.1.0
  • Hibernate.Envers 2.0.0

1 ответ

Чтобы получить сущности и информацию о ревизии в одном утверждении, вы можете использовать

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

Я думаю, что для получения последней / текущей сущности вместе с объектом ревизии это работает (AFK не может проверить)

session.Auditer().CreateQuery()
   .ForHistoryOf<YourEntityType, YourRevisionType>()
   .Add(AuditEntity.RevisionNumber().Maximize().ComputeAggregationInInstanceContext())
   .Results()
Другие вопросы по тегам