Я обнаружил, что всякий раз, когда я загружаю объект из моей базы данных, он сразу же становится грязным.
Я нашел код, который позволит мне увидеть, не загрязнен ли объект: http://nhforge.org/wikis/howtonh/finding-dirty-properties-in-nhibernate.aspx
var x = session.Get<MyRecord>(123);
var dirtyEntity = session.IsDirtyEntity(x);
dirtyEntity всегда имеет значение true для сущностей этого класса.
Рассматривая это немного больше, я думаю, что я нашел корень проблемы. У меня есть свойство, которое отображается на столбец nchar (15) в SQL Server. Значение в БД имеет конечные пробелы, но значение, отображаемое в объекте, было обрезано. Итак ... следующее возвращает true.
var x = session.Get<MyRecord>(123);
var dirtyProperty = session.IsDirtyProperty(x, "Status");
Кто-нибудь знает, как я могу заставить nHibnernate сказать, что «Состояние в норме» и «Состояние в норме» равнозначны и что объект не является грязным?