BreezeJS中包含单引号或双引号的字符串查询返回错误

时间:2013-04-10 16:25:02

标签: breeze

我有一个搜索字段的文本输入,然后将字符串传递给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);

我已经尝试通过双引号或“做”来逃避单引号,但它仍然会返回错误。这也与双引号类似。什么是转义字符串文字字符的正确方法?

1 个答案:

答案 0 :(得分:4)

我无法重复这一点。你应该能够通过简单地加倍来逃避一个'。例如,以下查询在 v 1.2.8 上没有问题。

 var q = EntityQuery.from("Employees")
        .where("lastName", "contains", "O''Malley");

如果您将查询“简化”到where where子句,问题是否仍然存在?