2016-02-04 3 views
3

Использование EF 6. У меня есть объект (Person), который содержит поле с нулевым датним времени.Неверное поле не может принять null?

public DateTime? StartDate { get; set; } 

Это заставило меня думать, что я должен быть в состоянии назначить null это свойство без какого-либо вопроса, как это ...

Person.StartDate = null; 

Однако, когда я добираюсь до context.SaveChanges() я получаю сообщение об ошибке говорит. ..

преобразование типа datetime2 данных в тип данных даты и времени привело к значению вне-диапазона. \ г заявление \ NThe была прекращено. "

Нельзя ли принять значение поля с нулевым значением .... null?

+1

Поле принимает «null», иначе оно взорвалось бы, когда оно было назначено. Это ваша база данных или сам EF, который задыхается. – Enigmativity

+0

Хороший вопрос! Ошибка вызывается при вызове SaveChanges(). – webworm

+0

Поле базы данных, по-видимому, не имеет значения NULL. –

ответ

3

Сделайте свой столбец базы данных нулевым.

+0

Я использую EF Code Migrations, поэтому код C# генерирует базу данных. Должен ли столбца базы данных быть нулевым уже с тех пор, как я определил его как «DateTime?» Нужно ли добавлять сущность данных к сущности? Я также посмотрел на сгенерированную схему, и поле указано как способное принять значение null в базе данных. – webworm

+0

Еще стоит двойная проверка против самой таблицы базы данных DDL. – code4life

+0

Тип столбца 'datetime2' может поддерживать даты до 1753, тогда как' datetime' не может. Почему пустая ошибка? Не уверен. Почему 1753? http://stackoverflow.com/questions/3310569/what-is-the-significance-of-1-1-1753-in-sql-server – robrich

Смежные вопросы