在海量数据库(Vastbase)上翻译数字+字符串拼接语法存在兼容性问题 返回
SqlSugar
沟通中
128
悬赏:0 飞吻
翻译如下语句会导致执行报错
.Where(t => conditionList.Contains(t.numCol + ""))
在SQL中它被翻译为
WHERE "numCol" + :p IN ('xxxxx','xxxxxx') -- 参数 :p = ''然后产生异常:
22P02: numeric无效的输入语法:""
需要修改为
.Where(t => conditionList.Contains(t.numCol.ToString())) 或 .Where(t => conditionList.Contains(SqlFunc.ToString(t.numCol)))
可以的话, 建议对Vastbase以上存在string与非string类型的Add表达式中对非string类型的项追加调用ToString来保证兼容性