Свободный Nibernate OmitesisticLocklock.none () вызывает «строку« Нет »не является действительным логическим значением».
-
24-09-2019 - |
Вопрос
Я использую следующее отображение:
public class LoadMap : IAutoMappingOverride<Load> {
public void Override(AutoMapping<Load> mapping) {
mapping.HasMany(x => x.Bids).OptimisticLock.None();
mapping.Version(x => x.Version);
}
}
Но когда я пытаюсь создать сеанс, я получаю следующее исключение:
Форматеxception: Строка «Нет» не является действительным логическим значением.
XmlschemavalidationException: атрибут «Оптимистичное блокировка» недействителен - значение «Нет» недействителен в соответствии с его DataType 'http://www.w3.org/2001/xmlschema:boolean.'- строка «нет» не является действительным логическим значением.
Я использую Nhibernate 2.1.2.4000, и я использовал свободных Nhibernate 1.0RTM, но попробовал последнюю сборку 636, чтобы убедиться, что это не то, что было исправлено недавно или что-то.
Как боковая заметка, В случае, если я делаю это все неправильно, Я хотел бы иметь возможность внести изменения в список. Впустую без увеличения версии. Я видел пример на Блог Ayende Это делало то, что я хотел с свойствами.
Решение
Я думаю, что это ошибка. Допустимые значения для объекта оптимистичного блокировки являются True | false, как вы говорите в своем комментарии. Похоже, что свободно Nhibernate устанавливает свойство, кроме того, что я бы создал схему XML, чтобы быть уверенным.
Другие советы
Как говорит Джейми, похоже на ошибку (или отсутствующую функцию) в свободном Nhibernate. Я добавил взлом, чтобы позволить установить ложь и верно на оптимистичном документе в Моя вилочка Github. Отказ Кажется, работает.