У меня есть следующая модель объекта:
public class ScheduledTask
{
public virtual int ScheduledTaskId { get; set; }
public virtual Incident TemplateIncident { get; set; }
//Some props are omitted for simplicity
[Display(Name = "Next runtime")]
[Required]
[DataType(DataType.DateTime)]
public virtual DateTime NextExecuteAfterDate { get; set; }
}
Это часть DataContext как:
public DbSet<ScheduledTask> ScheduledTasks { get; set; }
Пользовательский интерфейс в решении - это сайт MVC3.
Каждый раз, когда пользователь сохраняет запись, планируемое задание сохраняется вместе:
_db.Add(new ScheduledTask
{
NextExecuteAfterDate = DateTime.MinValue,
Schedule = scheduleTypeId,
TemplateIncident = incident
});
_db.SaveChanges();
Как видите, я создаю экземпляр моего класса сущностей, присваиваю свойству DateTime
минимальное значение и добавляю его к DbContext
. Тогда я звоню SaveChanges()
.
SaveChages()
генерирует
[SqlException (0x80131904): The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.
The statement has been terminated.]
A NextExecuteAfterDate
в базе данных - это столбец типа datetime, not null
.
Откуда берется datetime2 и как я могу исправить проблему и заставить EF добавить строку в таблицу?