System.InvalidCastException:“Unable to cast object of type 'System.Double' to type 'System.Single'.”
System.InvalidCastException:“Unable to cast object of type 'System.Double' to type 'System.Single'.”
数据库的字段
类型:float 代表从 - 1.79E + 308 到 1.79E + 308 之间的浮点数字数据。(占用8字节)
类型:real 代表从 -3.40E + 38 到 3.40E + 38 之间的浮点数字数据。(占用4字节)
C#.NET类型
类型:double 代表从 -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字(8字节)
类型:float 代表从 -3.402823e38 和 +3.402823e38 之间的单精度 32 位数字(4字节)
数据库没有double型,float表示double值。
Sql Server数据库字段类型与.net的数据类型的对应关系
real(数据库)<--> float?(.NET)
float(数据库)<--> double?(.NET)
解决方案
1、检查Model的属性定义,float类型使用Double?定义泛型。参考:
C# 全选
public Double? AVERAGE_INCREASE_1DAY { get; set; }
public Double? RISE_PROBABILITY_1DAY { get; set; }
2、检查 ModelBuilder是否设置精度,如设置,必须注释掉,float类型不需要设置小数位。
C# 全选
// builder.Entity<tb_ORG_TransList>().Property(p => p.RISE_PROBABILITY_1DAY).HasPrecision(18, 6);//设置小数位
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网