Как сохранить согласованность данных сеанса NHibernate?

У меня есть сеансы NHibernate, кэшированные в сеансе ASP.NET.

Я столкнулся с ситуацией, когда пользователь редактировал объект, чтобы он находился в кэше первого уровня в ISession. Затем другой пользователь отредактировал тот же объект.

На этом этапе Пользователь1 все еще видит свою первоначальную версию своих правок, где, как Пользователь2 видит правильное состояние объекта?

Как правильно обрабатывать это без ручного вызова session.Refresh (myObj) для каждого отдельного объекта все время?

У меня также включен кэш 2-го уровня. Для NHibernate Long Session я должен просто полностью отключить кэш первого уровня?

Редактировать: Добавление еще некоторой терминологии к тому, чего я хочу добиться от10.4.1. Длинный сеанс с автоматическим версионированием конец этого раздела заканчивается

Поскольку ISession также является (обязательным) кэшем первого уровня и содержит все загруженные объекты, мы можем использовать эту стратегию только для нескольких циклов запроса / ответа. Это действительно рекомендуется, поскольку ISession скоро также будет иметь устаревшие данные.

Я не уверен, что это за документация, чтобы включить и то, и другое, и затем сразу сказать, что сессия будет иметь устаревшие данные (что я и вижу). Каково решение этого прямо здесь или нет?

Ответы на вопрос(3)

Ваш ответ на вопрос