在海量数据库(Vastbase)上翻译数字+字符串拼接语法存在兼容性问题 返回

SqlSugar 沟通中
128

翻译如下语句会导致执行报错

.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来保证兼容性

热忱回答0