今天在用dapper处理返回的List<model>时,发现model中的一个字段返回始终是null(如下图所示;model中此属性声明为了string)
但不使用dapper返回的datatable在第11列(即上图中的TAL_REJECT_PERCENT)是完全正常的,非常疑惑。
用sql在plSql中执行没有任何问题,返回null的列是能正常区获取到相应数据的,但是为何通过dapper后就为null呢?
使用plSql查看了下表的中所有字段的类型,其为Number(5,2)……这也许就是产生问题的根源。
一番百度与bing搜索后,发现dapper在处理oracle的Number时是会导致一些问题……但按百度与bing上推荐的处理办法,并未解决小子的问题,很是失望。
另尝试将model中此属性声明为double或float或decimal(但其他人反馈用decimal是可行的)时,无论查询到的数据是啥,数据类型为double或float或decimal查询到到的值都为默认值0.也就是说直接改model中相应属性的数据类型是不能解决问题的。
后续在用data reader读取的时候时,进行相应的监控,其类型确为decimal,然在model中将其改为decimal确是不可以的……大哭!
现记之以备忘,后续解决后再补全解决办法。