OrmLite不允许在PostgreSQL查询中使用“ @@”

问题描述

我正在尝试使用tsquery for postrgresql添加参数化查询

原始postgresql如下:

and search @@ 'john' ::tsquery;

每当我尝试将其添加查询中时:

query.And("search @@ 'john' ::tsquery");

抛出错误,它可能是不安全的片段。

如何允许它通过验证?

解决方法

使用C#string.Format语法在SQL Fragment查询中为db参数建立索引,例如:

query.And("search @@ {0}::tsquery;",request.SearchTerm);

您可以使用UnsafeAnd绕过SQL片段验证