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

StackOverflow https://stackoverflow.com/questions/813240

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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();
               }
           }
Это было полезно?

Решение

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top