首页 > 解决方案 > 如何逃脱“?” 在 NHibernate 中的 Expression.Sql (C#)

问题描述

当我尝试使用Postgresql '?Expression.Sql中的运算符 它认为我正在尝试添加一个新参数,但失败了。例子:

Expression.Sql("(this_.data -> 'glossary' ->> 'GlossDiv')::jsonb ? ?", "testValue", NHibernateUtil.String);

[ADOExceptionReporter]:索引超出范围。必须是非负数且小于集合的大小。

如何逃脱呢?

标签: nhibernate

解决方案


您可以尝试使用SqlString作为参数重载它可能对您有所帮助:

Expression.Sql(new SqlString(new object[]{"(this_.data -> 'glossary' ->> 'GlossDiv')::jsonb ? ", Parameter.Placeholder}), "testValue", NHibernateUtil.String);

推荐阅读