OrmLite select查询中的Curly括号抛出错误

时间:2016-02-17 12:39:39

标签: servicestack ormlite-servicestack

似乎OrmLite普通选择扩展方法(Select<T>)尝试格式化查询字符串(如SelectFmt<T>),因此如果查询字符串包含大括号,则会抛出错误缺少论据。

示例查询:

db.Select<Company>("Website='http://www.test.com/?session={123}'");

抛出错误:

Index (zero based) must be greater than or equal to zero and less than the size of the argument list.

理想情况下,Select<T>应该只是逐字执行查询,而不进行任何字符串格式化。

它是OrmLite中的错误还是别的什么?!

更新:似乎问题是here in OrmLiteDialectProviderBase class。它应该检查参数长度等。

1 个答案:

答案 0 :(得分:2)

您可以使用跳过OrmLite预处理的executing Custom SQL SqlList<T> API,但您需要提供完整的SQL语句,例如:

var results = db.SqlList<Company>(
  "SELECT * FROM Company WHERE Website='http://www.test.com/?session={123}'");