zoukankan      html  css  js  c++  java
  • ESQL 查询数据报 参数类型“Edm.Decimal”和“Edm.Double”不兼容

    ESQL 查询数据报 参数类型“Edm.Decimal”和“Edm.Double”不兼容

     

    System.Data.Entity.Core.Objects.ObjectQuery<TEntity> objectquery = objectContext.CreateQuery<TEntity>(ESQL);

    使用ESQL 的ObjectQuery查询对象的方法CreateQuery查询数据时,老是报“参数类型“Edm.Decimal”和“Edm.Double”不兼容”,查询许久,发现中文资料太少了,分析问题应该是在esql中查询条件在double转decimal是不兼容报错,在esql中传入的参数在组织esql语句的时候小数是当做double处理的,我们的字段类型是decimal,导致此错误发生,最终在IBM Knowledge Center找到了答案,地址:https://www.ibm.com/support/knowledgecenter/SSMKHH_9.0.0/com.ibm.etools.mft.doc/ak05610_.htm

    然后我的解决方案如下:

    在组织esql转成decimal

    string.Format(“{0} >= {1}”, Amount, "CAST(0.01 AS System.Decimal(23,2))");

    至此问题解决,

    注意:在转换时,int 转decimal等不受影响,整形可以不用转换,为了考虑性能可以做一个判断,仅转换double类型等

    System.Data.Entity.Core.Objects.ObjectQuery<TEntity> objectquery = objectContext.CreateQuery<TEntity>(ESQL);
  • 相关阅读:
    MySQL多表查询
    多表关联
    MySQL数据类型 约束
    初识数据库
    socker server和 event
    os 模块 和 os模块下的path模块
    sys 模块
    time 模块
    目录规范

  • 原文地址:https://www.cnblogs.com/ching2009/p/7986726.html
Copyright © 2011-2022 走看看