Можно ли сделать так, чтобы Nhibernate предотвращал исключение «переполнение SQLDateTime» при запросах к базе данных? - PullRequest
1 голос
/ 20 марта 2012

Мне интересно, возможно ли обработать исключение переполнения SQLDateTime по-генеральному, поэтому каждый раз, когда я пытаюсь запросить у базы данных дату до 01.01.1753, это не приведет к исключению, но вместо этого просто конвертируйте дату вне допустимого диапазона в минимальный DateTime SQL.

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

Я представляю что-то вроде этого, но не знаю, где его поставить:

override DateTime ParseDateTime(DateTime date)
{
   var minDate = System.Data.SqlTypes.SqlDateTime.MinValue.Value;
   if (date < minDate)
     return minDate;
   else
     return date;
}

1 Ответ

0 голосов
/ 20 марта 2012

Я думаю, что вы можете достичь этого с помощью пользовательской реализации IUserType (пример - http://lostechies.com/rayhouston/2008/03/23/mapping-strings-to-booleans-using-nhibernate-s-iusertype/)

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