我有一个搜索字段的文本输入,然后将字符串传递给EntityQuery。当查询包含单引号时,我会收到如下消息:
在'substringof(O'Malley,FirstName)eq true'的第39位有一个未终止的字符串文字。
只需对此查询进行硬编码即可:
var query = breeze.EntityQuery
.from("Users")
.expand("GroupUsers.Group")
.where("lastName", "contains","O'Malley")
.skip(skipAmt)
.take(pageSize)
.inlineCount(true);
我已经尝试通过双引号或“做”来逃避单引号,但它仍然会返回错误。这也与双引号类似。什么是转义字符串文字字符的正确方法?
答案 0 :(得分:4)
我无法重复这一点。你应该能够通过简单地加倍来逃避一个'。例如,以下查询在 v 1.2.8 上没有问题。
var q = EntityQuery.from("Employees")
.where("lastName", "contains", "O''Malley");
如果您将查询“简化”到where where子句,问题是否仍然存在?