Я работаю над проектом, который использует NHibernate. Я не открываю сеанс. Когда мне нужно получить или сохранить объект, я открою сеанс, сделаю то, что мне нужно, а затем закрою сеанс. Так что все время я работаю с объектами, отделенными от сеанса.
Например, когда мне нужно получить объект из базы данных, я открываю сеанс, а затем вызываю session.Get() и закрываю сеанс. Затем я обновляю некоторые свойства отдельного объекта. Когда мне нужно сохранить изменения в базе данных, я вызываю метод, который открывает сеанс, вызывает session.Update(myObject) и закрывает сеанс.
Но когда я это делаю, NHibernate генерирует sql, который обновляет все поля, которые я отобразил, даже если они не изменились. Мое предложение - когда объекты отрываются от сеанса, NHibernate не смог отслеживать изменения. Какой подход вы используете, если хотите обновить только те свойства, которые были изменены для объекта, отделенного от сеанса? Как вы отслеживаете изменения для отдельных объектов?
Спасибо