Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 将日期时间保存到代码首次生成的数据库异常_Asp.net Mvc 3_Entity Framework_Datetime_Sqlexception - Fatal编程技术网

Asp.net mvc 3 将日期时间保存到代码首次生成的数据库异常

Asp.net mvc 3 将日期时间保存到代码首次生成的数据库异常,asp.net-mvc-3,entity-framework,datetime,sqlexception,Asp.net Mvc 3,Entity Framework,Datetime,Sqlexception,我有以下模型实体: public class ScheduledTask { public virtual int ScheduledTaskId { get; set; } public virtual Incident TemplateIncident { get; set; } //Some props are omitted for simplicity [Display(Name = "Next r

我有以下模型实体:

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; }
如您所见,我正在创建实体类的一个实例,为
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.]
数据库中的
NextExecuteAfterDate
是类型为
datetime的列,不为null


datetime2从何而来,如何解决问题并让EF向表中添加行?

sql server希望在数据库中存储1.1.0001,但这不在sql server DateTimes的范围内。 我对EF的使用不多,但在其他ORM中,您可以简单地将DateTime更改为Nullable并显式存储null值。 像这样:

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")]
    [DataType(DataType.DateTime)]
    public virtual DateTime? NextExecuteAfterDate { get; set; }
}

可能这也适用于EF

sql server希望在数据库中存储1.1.0001,但这不在sql server日期时间的范围内。 我对EF的使用不多,但在其他ORM中,您可以简单地将DateTime更改为Nullable并显式存储null值。 像这样:

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")]
    [DataType(DataType.DateTime)]
    public virtual DateTime? NextExecuteAfterDate { get; set; }
}

也许这也适用于EF是的,我不知道一个事实,即.Net的DateTime.MinValue不与SQLDateTime一起使用。是的,我不知道一个事实,即.Net的DateTime.MinValue不与SQLDateTime一起使用。