servicestack - OrmLite 不允许在 postgresql 查询中使用 '@@'
问题描述
我正在尝试使用 tsquery 为 postrgresql 添加参数化查询。
原始的 postgresql 看起来像:
and search @@ 'john' ::tsquery;
每当我尝试将其添加到以下查询中时:
query.And("search @@ 'john' ::tsquery");
它会引发错误,表明它可能是不安全的片段。
我如何允许它通过验证?
解决方案
使用 C# string.Format 语法在 SQL 片段查询中索引数据库参数,例如:
query.And("search @@ {0}::tsquery;", request.SearchTerm);
您可以使用UnsafeAnd
绕过 SQL 片段验证
推荐阅读
- javascript - Material UI React - 自动完成 - 如何重置内部状态
- spring - 发生错误时如何创建确认对话框
- java - 如何在不使用 super() 的情况下访问父类的重写方法?
- javascript - JavaScript 事件处理程序不断调用 WebAssembly 函数
- python-3.x - 使用 matplotlib 沿路径放置和插入平面图像
- python - Jinja,基于选择器生成输入值
- laravel - Laravel 身份验证返回 null
- excel - 如何在excel中的2个相同表格中输入值?
- css - Firefox CSS 搞砸了,我该如何解决?
- optaplanner - 基于实体属性的 Optaplanner 构建启发式