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

 

今天在使用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; }

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

最新文章

  1. FIR on Hadoop using hadoop-streaming
  2. JavaScript基础 DOM的操作
  3. Android 中“TabBar”的背景拉伸问题
  4. Revit二次开发示例:Journaling
  5. Linux GDB常用命令一栏
  6. 【原创】javascript——prototype与__proto__
  7. HTML部分标签的含义(2)
  8. hdu1028
  9. zTree-已勾选项id传输到action的解决方案
  10. 【BZOJ2127】happiness(最小割)
  11. vue 中 vue-router、transition、keep-alive 怎么结合使用?
  12. 【原创】大叔经验分享(47)yarn开启日志归集
  13. 计算kdj
  14. 【C++类与对象】实验四(二)
  15. arguments.callee的作用及替换方案
  16. 成功激活Win8.1专业版方法
  17. Linux permission denied解决方法
  18. 我的tensorflow学习1
  19. 适用于 Windows VM 的 Azure 示例基础结构演练
  20. querySelector/querySelectorAll选择器两个容易忽略的点

热门文章

  1. C++迭代器失效的几种情况总结
  2. LRU Cache leetcode java
  3. Word 代码高亮
  4. [Javascript] Hositing
  5. Linux-cpu分析-vmstat
  6. Linux远程上传、下载文件的方法
  7. C#.NET常见问题(FAQ)-如何把函数名作为参数传递给另一个函数
  8. Asp.net 生成静态页面
  9. android 随手记 读写文件的几种方式
  10. iPhone调用ffmpeg2.0.2解码h264视频的示例代码