Я работаю над проектом, который использует NHibernate в качестве ORM.
Довольно большое количество объектов может быть загружено в сеанс как «только для чтения», поскольку они не должны обновляться после получения.
Я пробовал сделать это двумя разными способами:
var entity = criteria.UniqueResult<MyType>();
_session.SetReadOnly(entity, true);
or:
criteria.SetReadOnly(true);
Однако в обоих случаях я вижу, что объект присутствует в PersistenceContext
ISession.
Это нормально ? Я ожидал, что, поскольку сущность доступна только для чтения / неизменна, она не должна присутствовать в PersistenceContext. Тип объекта - сложный тип; он имеет множество ассоциаций с другими типами.