码迷,mamicode.com
首页 > 其他好文 > 详细

EntityFramework中出现DateTime2异常的完美解决办法

时间:2017-05-16 20:02:17      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:log   pre   插入数据   数据类型   插入时间   十分   ram   span   code   

今天在使用entityframework往数据库插入数据的时候,突然出现了一个数据类型转换异常的问题:

System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值.

查了一下网上的资料,很多人给了原因与解决办法:

C#中的DateTime类型比SqlServer中的datetime范围大。SqlServer的datetime有效范围是1753年1月1日到9999年12月31日,如果超出这个范围,EF就会把datetime转换为datetime2,但在数据库的映射类型还是datetime类型,所以才会出现异常,

网上解决办法:

1.将数据库中的时间字段改成datetime2

2.修改ef的数据库生成配置

3.传时间在数据库规定的范围内的时间参数

但是个人觉得这几种办法都不是十分妥当,个人解决办法:将model的时间类型设置为可空类型即可,例如 

public DateTime? CreatTime{get;set;}//或者 public Nullable<DateTime> CreateTime { get; set; }

此方法可完美解决插入时间类型转换报错异常

 

EntityFramework中出现DateTime2异常的完美解决办法

标签:log   pre   插入数据   数据类型   插入时间   十分   ram   span   code   

原文地址:http://www.cnblogs.com/jovenlee/p/6863211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!