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