Я с волнением прочитал первую статью, которая появилась в Google - это была именно моя проблема. У меня есть объектная модель с ненулевым полем даты, но базовое поле базы данных было равно нулю и имело нулевое значение. Это был DateTime. nHibernate установил значение в .Net Date.MinValue, затем попытался сохранить его обратно, выдав ошибку.
Решение в статье: просто используйте «DateTime?» в доменной модели.
Это не сработает для нас.
Вот в чем дело: мы проводим крупный рефакторинг, который включает в себя миграцию данных из одной схемы в другую, переход от ADO к nHibernate и т. Д., Сложные вещи. Итог: объектная модель является правильной, как она есть, это НЕ обнуляемый DateTime («CreatedDate»). Установка его в DateTime? будет работать технически, но это неверно. Чего я действительно хочу, так это чтобы nHibernate перестал быть таким полезным и просто выдавал ошибку, когда сталкивался с попыткой загрузить нулевой DateTime в необнуляемый объект домена. Я считаю, что это поможет нам быстрее выявить эти проблемы.
Я знаю, что nHibernate очень настраиваемый / сопоставляемый ... есть ли способ добиться такого поведения, и как лучше всего это сделать ...?
Заранее спасибо за любую помощь!