工作总结 EntityFramework中出现DateTime2异常的完美解决办法
2024-10-18 18:27:52
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; }
此方法可完美解决插入时间类型转换报错异常
最新文章
- FIR on Hadoop using hadoop-streaming
- JavaScript基础 DOM的操作
- Android 中“TabBar”的背景拉伸问题
- Revit二次开发示例:Journaling
- Linux GDB常用命令一栏
- 【原创】javascript——prototype与__proto__
- HTML部分标签的含义(2)
- hdu1028
- zTree-已勾选项id传输到action的解决方案
- 【BZOJ2127】happiness(最小割)
- vue 中 vue-router、transition、keep-alive 怎么结合使用?
- 【原创】大叔经验分享(47)yarn开启日志归集
- 计算kdj
- 【C++类与对象】实验四(二)
- arguments.callee的作用及替换方案
- 成功激活Win8.1专业版方法
- Linux permission denied解决方法
- 我的tensorflow学习1
- 适用于 Windows VM 的 Azure 示例基础结构演练
- querySelector/querySelectorAll选择器两个容易忽略的点