问题:
从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值。 语句已终止。
分析:
EF使用6.3版本
数据库最初用SqlServer2008版本创建,但日期类型都是用datetime
EF会把C#的DateTime类型转换为SqlServer的datetime2,由于datetime2类型的精度比datetime类型的精度大,datetime2转为datetime报错
解决:
会报错的写法
case.CreatedDate = DateTime.Now;
解决
DateTime now = DateTime.Now;
case.CreatedDate = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, now.Millisecond);
另一个奇怪的问题:按照上面的解决方法修改后,再修改为DateTime.Now时却不报错了,真不懂
参考:
https://www.cnblogs.com/plwang1990/articles/2025334.html