首页 > 解决方案 > OrmLite 不允许在 postgresql 查询中使用 '@@'

问题描述

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

原始的 postgresql 看起来像:

and search @@ 'john' ::tsquery;

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

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

它会引发错误,表明它可能是不安全的片段。

我如何允许它通过验证?

标签: servicestackormlite-servicestack

解决方案


使用 C# string.Format 语法在 SQL 片段查询中索引数据库参数,例如:

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

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


推荐阅读