Я думаю, что вы уже нашли решение, установив режим очистки никогда. Да, это можно изменить, но даже если это не так, код может просто создать другой сеанс с другим режимом сброса.
Я думаю, что подходящее решение - предложить только для чтения с session.FlushMode = FlushMode.Never
и принудительно применить его , используя соединение с базой данных, которое имеет только разрешения SELECT (или любое другое для вашей ситуации). Поддержка отдельных фабрик ISessionFactory может помочь, если разрешить что-то вроде ReadOnlySessionFactory.Create()
.