Переполнение SqlDateTime при использовании NHibernate

Я сохраняю свои объекты, используя NHibernate в базе данных

App У объекта есть свойство, определенное:

public virtual DateTime ReleaseDate { get; set; }

в mappingClass:

Map(x => x.ReleaseDate).Not.Nullable();

который в SQL Server 2008 его dataType является dateTime и не обнуляется.

впервые он сохраняет в базу данных без ошибок. но после обновления информации приложения я сталкиваюсь SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.

но дата выпуска приложения является действительным dateTime: 2/16/2014 2:21:58 AM и это не ноль.

поэтому я запутался, почему это исключение повышают?

ist<App> apps = session.QueryOver<Data.Model.App>()
            .List()
            .ToList();
.
.
.
.
for (int i = 0; i < apps.Count(); i++)
        {
            App appWithOldInfo = apps[i];

                using (ITransaction transaction = session.BeginTransaction())
                {
                    try
                    {
                        //updating app info
                        appWithOldInfo = UpdateAppInfo(appWithOldInfo, appWithNewInfo);

                        session.Update(appWithOldInfo);
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        Debug.WriteLine(ex.Message);
                    }
                }

увидеть скриншоты:

1 ответ

Решение

Спасибо, ребята, за ваши полезные комментарии.

Проблема была в том, что я брал device объект из БД, который имеет свойство LastActivityDate

List<Device> devices = session.QueryOver<Data.Model.Device>().List().ToList();

Я добавил это свойство в модель после добавления объекта устройства с некоторой информацией в БД. это свойство было нулевым, но я не определил LastActivityDate как обнуляемое свойство.

таким образом, этот объект находился в том же сеансе объекта приложения. когда я сбросил сессию, потому что LastActivityDate был нулевым, исключение SqlDateTime увеличилось!

это просто. но я трачу часы, чтобы найти его!!

Другие вопросы по тегам