4

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

我尝试通过执行双单引号或执行 \' 来转义单引号,但它仍然返回错误。双引号也会发生类似的情况。转义字符串文字字符的正确方法是什么?

4

1 回答 1

4

我无法重现这个。您应该能够通过简单地将其翻倍来逃避单个 ' 。例如,以下查询在v 1.2.8上没有问题。

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

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

于 2013-04-11T06:40:14.873 回答