Присоединение 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()