У меня есть сеансы NHibernate, кэшированные в сеансе ASP.NET.
Я столкнулся с ситуацией, когда пользователь редактировал объект, чтобы он находился в кэше первого уровня в сеансе ISession. Затем другой пользователь отредактировал тот же объект.
На этом этапе пользователь1 все еще видит свою первоначальную версию своих правок, где пользователь 2 видит правильное состояние объекта?
Как правильно обрабатывать это без ручного вызова session.Refresh (myObj) явно для каждого отдельного объекта все время?
У меня также включен кэш 2-го уровня. Для NHibernate Long Session я должен просто полностью отключить кэш первого уровня?
Редактировать: Добавление еще некоторой терминологии к тому, чего я хочу достичь с 10.4.1. Длинный сеанс с автоматическим версионированием , конец этого раздела заканчивается
Поскольку ISession также является (обязательным) кэшем первого уровня и содержит все загруженные объекты, мы можем использовать эту стратегию только для нескольких циклов запроса / ответа. Это действительно рекомендуется, поскольку ISession скоро также будет иметь устаревшие данные.
Я не уверен, что это за документация, чтобы включить и то, и другое, а потом сразу сказать, что на сессии будут устаревшие данные (именно это я и вижу). Какое здесь решение или нет?