将datetime2数据类型转换为日期时间数据类型会导致超出范围?

Ger*_*o18 31 sql silverlight sql-server-2008 silverlight-4.0

我正在处理应用程序包含一个datepicker,如果我将该选择器中的时间设置为一个非常旧的值,或者将来我尝试将此值保存在数据库中时,服务器会抛出此异常,原因是什么?

将datetime2数据类型转换为日期时间数据类型会导致超出范围的值.该语句已终止.

Ant*_*nes 68

DateTime 范围:1753年1月1日至9999年12月31日

DateTime2 范围:0001-01-01至9999-12-31

因此,如果您在1753年之前输入日期,则当表中的字段为类型时,您将收到此错误DateTime.


Har*_*ala 23

实体框架将为值{01/01/0001 00:00:00}字段添加默认日期,这超出了SQL Date Generation的范围.因此,为了使其工作,我们需要要求EF不生成默认日期,我们可以通过在该类的模型中执行以下操作使其可为空.

在这种情况下,EntityFramework为LastLoggedIn字段生成默认值.如果datebase中的这个字段可以取空值,意味着我们可以通过在模型中进行以下操作使其可为空

 [Display(Name = "LastLoggedIn")]
        public DateTime? LastLoggedIn { get; set; }
Run Code Online (Sandbox Code Playgroud)