从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值

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

 

try:

把你的edmx中的ProviderManifestToken设置成2005,这样entityframework就会默认转化成datetime了。

结果不成功

 

try:

C#中的Datetime返回和sqlserver中Datetime的方位不一致,C#中的范围较广,将数据库字段类型设为datetime2即可

结果不成功

 

try:

未在edmx文件中设置对应表字段的属性,在edmx文件中找到对应的字段,将属性StoreGeneratedPattern设置为Identity即可
结果不成功

 

我也是犯了同样的一个错误就是没有初始化一个时间的字段造成的,初始化之后就好了!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值