Ответ 1
DateTime
имеет диапазон: 1 января 1753 года, 31 декабря, 9999
DateTime2
имеет диапазон: 0001-01-01 - 9999-12-31
Итак, если вы вводите дату до 1753, вы получите эту ошибку, если поле в таблице имеет тип DateTime
.
Я работаю над приложением, которое содержит datepicker, и если я установлю время в этом сборщике на очень старое значение или далеко в будущем, когда я попытаюсь сохранить это значение в базе данных, сервер выбросит это исключение, в чем причина из этого?
Преобразование типа данных datetime2 в тип данных datetime привела к превышению значения вне диапазона. Заявление завершено.
DateTime
имеет диапазон: 1 января 1753 года, 31 декабря, 9999
DateTime2
имеет диапазон: 0001-01-01 - 9999-12-31
Итак, если вы вводите дату до 1753, вы получите эту ошибку, если поле в таблице имеет тип DateTime
.
Entity Framework добавит дату по умолчанию для поля значения {01/01/0001 00:00:00}, и это выходит за рамки SQL Date Generation. Чтобы заставить его работать, нам нужно попросить EF не генерировать дату по умолчанию, мы можем сделать его нулевым, выполнив следующее в Модели этого класса.
В этом случае для поля LastLoggedIn по EntityFramework генерируется значение по умолчанию. Если это поле в дате может принимать нулевое значение, это означает, что мы можем сделать его нулевым, выполнив следующее в модели
[Display(Name = "LastLoggedIn")]
public DateTime? LastLoggedIn { get; set; }
Products prd = new Products();
prd.CreatedDate = DateTime.Now;
Вы можете добавить, как указано выше