2009-12-16 2 views
33

У меня есть таблица с типом данных даты в sql. Когда я смотрю на разметку EDM, элемент памяти отражает это. У концептуального объекта есть тип данных DateTime (не существует типа данных Date). Когда я вызываю save changes и имеет экземпляр DateTime, связанный с сущностью, которую я хочу сохранить, возникает следующая ошибка:Использование типа данных даты sql и EF4

Преобразование типа данных datetime2 в тип данных datetime приводит к выходу за пределы диапазона стоимость. Заявление было прекращено.

Как использовать тип данных даты в моей схеме и вести EF? Благодаря!

ответ

49

Похоже, что ваш столбец даты SQL не имеет значения NULL, но вы не инициализировали дату на своем объекте перед сохранением?

+1

Да, я просто понял, что это не имело ничего общего с столбцом даты, у меня есть другой столбец DateTime, который имеет значение по умолчанию, указанное в db, но я забыл изменить свойство StoreGeneratedPattern в SSDL, чтобы заставить это работать. Виноват. –

+1

@Pop Catalin: Трудно обвинить EF здесь; он ведет себя правильно. SQL Server имеет действительно странно ограниченный диапазон «DateTime». –

+0

Я имел в виду в общем, это была одна из многих проблем, с которыми я столкнулся за очень короткий период времени ... (И BTW, EF пришел после SQL Server, я ожидал большего от EF) –