NHibernate генерирует оператор обновления для всех столбцов - PullRequest
7 голосов
/ 16 декабря 2010

Всегда ли NHibernate генерирует обновления для всех столбцов?

public class Person
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual string Address { get; set; }
}

Person p = Session.Load(1);
p.Name = "New Name";

Session.Flush();//Update for all columns, but I change only Name

Это нормальное поведение для NHibernate или моя ошибка? Я использую Fluent NHibernate и AutoMapping.

Ответы [ 2 ]

10 голосов
/ 17 декабря 2010

Это поведение по умолчанию, но вы можете заставить NH обновлять измененные столбцы, только добавив dynamic-update="true" к вашему <class> отображению.

0 голосов
/ 16 декабря 2010

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

Если вы хотите переопределить это поведение, вам необходимо реализовать интерфейс IInterceptor .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...