oracle – Dapper,十进制加倍?解析列X时出错

oracle – Dapper,十进制加倍?解析列X时出错,第1张

概述我的数据库是Oracle.我使用Dapper 1.13,它抛出一个异常,说错误解析第3列(LATITUDE = 39.2330 – 十进制). LATITUDE是双倍?输入我的实体. 请帮我. 谢谢 是的,这是一个错误;在本地固定 – 基本上,更改行2367(哇,该文件何时变得如此之大?)来自: il.Emit(OpCodes.Ldtoken, unboxType); 至: il.Emit(OpC 我的数据库是Oracle.我使用Dapper 1.13,它抛出一个异常,说错误解析第3列(LATITUDE = 39.2330 – 十进制). LATITUDE是双倍?输入我的实体.

请帮我.

谢谢

解决方法 是的,这是一个错误;在本地固定 – 基本上,更改行2367(哇,该文件何时变得如此之大?)来自:

il.Emit(OpCodes.Ldtoken,unBoxType);

至:

il.Emit(OpCodes.Ldtoken,Nullable.GetUnderlyingType(unBoxType) ?? unBoxType);

基本上,它是发出:(十进制?)Convert.ChangeType(val,typeof(十进制?))什么时候应该发光(十进制?)Convert.ChangeType(val,typeof(十进制))(注意最重要的?的类型).

编辑:实际上,我推送到git的修复比修复Convert.ChangeType要复杂得多 – 它现在根据需要解析运算符,所以小数< ===>双重转换使用IL静态调用.

这将在下一个版本中修复.或者您可以在本地构建.现在通过以下内容:

public voID TestDoubleDecimalConversions_SO18228523_RightWay(){    var row = connection.query<HasDoubleDecimal>(        "select cast(1 as float) as A,cast(2 as float) as B,cast(3 as decimal) as C,cast(4 as decimal) as D").Single();    row.A.Equals(1.0);    row.B.Equals(2.0);    row.C.Equals(3.0M);    row.D.Equals(4.0M);}public voID TestDoubleDecimalConversions_SO18228523_WrongWay(){    var row = connection.query<HasDoubleDecimal>(        "select cast(1 as decimal) as A,cast(2 as decimal) as B,cast(3 as float) as C,cast(4 as float) as D").Single();    row.A.Equals(1.0);    row.B.Equals(2.0);    row.C.Equals(3.0M);    row.D.Equals(4.0M);}public voID TestDoubleDecimalConversions_SO18228523_Nulls(){    var row = connection.query<HasDoubleDecimal>(        "select cast(null as decimal) as A,cast(null as decimal) as B,cast(null as float) as C,cast(null as float) as D").Single();    row.A.Equals(0.0);    row.B.IsNull();    row.C.Equals(0.0M);    row.D.IsNull();}class HasDoubleDecimal{    public double A { get; set; }    public double? B { get; set; }    public decimal C { get; set; }    public decimal? D { get; set; }}
总结

以上是内存溢出为你收集整理的oracle – Dapper,十进制加倍?解析列X时出错全部内容,希望文章能够帮你解决oracle – Dapper,十进制加倍?解析列X时出错所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1157142.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存