nhibernate - 如何逃脱“?” 在 NHibernate 中的 Expression.Sql (C#)
问题描述
当我尝试使用Postgresql '?Expression.Sql中的运算符 它认为我正在尝试添加一个新参数,但失败了。例子:
Expression.Sql("(this_.data -> 'glossary' ->> 'GlossDiv')::jsonb ? ?", "testValue", NHibernateUtil.String);
[ADOExceptionReporter]:索引超出范围。必须是非负数且小于集合的大小。
如何逃脱呢?
解决方案
您可以尝试使用SqlString作为参数重载它可能对您有所帮助:
Expression.Sql(new SqlString(new object[]{"(this_.data -> 'glossary' ->> 'GlossDiv')::jsonb ? ", Parameter.Placeholder}), "testValue", NHibernateUtil.String);
推荐阅读
- python-2.7 - 当您调用具有不同参数的函数时会发生什么
- swift - 每次单击单元格时都会填充快速进度条
- keras - 如何设置 Keras TimeseriesGenerator 来预测第二个下一个值?
- java - JsonPath SUPPRESS_EXCEPTIONS 似乎不起作用
- java - 尝试使用 java CertStore 从 Windows 活动目录中检索 userCertificate 但没有成功
- javascript - 如何从响应中获取实际数据?我不确定
- python - 如何在 Python 的嵌套列表理解的内部循环中使用 if...else 条件?
- java - Java selenium - 如果我使用非加密密码,谁能确定它?通过 selenium 发送加密密码是否安全?
- python - 具有非常大的 HDF5 文件的 TensorFlow-IO 数据集输入管道
- c# - 查询Webclient的字符串到json字符串 - c#