Обновление NHibernate для одного свойства обновляет все свойства в sql

Я выполняю стандартное обновление в NHibernate для одного свойства. Однако при фиксации транзакции обновление sql, по-видимому, устанавливает все поля, которые я отобразил на таблице, хотя они не изменились. Неужели это не может быть нормальным поведением в Нюбернате? Я делаю что-то неправильно? Благодаря

using (var session = sessionFactory.OpenSession())
           {
               using (var transaction = session.BeginTransaction())
               {
                   var singleMeeting = session.Load<Meeting>(10193);
                   singleMeeting.Subject = "This is a test 2";

                   transaction.Commit();
               }
           }

Ответы

Ответ 1

Это нормальное поведение. Вы можете попробовать добавить dynamic-update="true" в определение класса, чтобы переопределить это поведение.

Ответ 2

Ну. да, это нормальное поведение для NHibernate. Вы можете использовать сгенерированный атрибут для своих свойств, чтобы изменить поведение. Подробности на блог Айенде.

Почему это значение по умолчанию связано с тем, что с динамикой вы не получаете свой план запроса в кеше. И, как правило, вы не возражаете, что вы отправляете несколько байт по высокоскоростному сетевому соединению между вашим сервером приложений и базой данных. Если вы не сохраняете длинные строки, где эта настройка идеально подходит.