我在oData规范或CRM文档中找不到任何引用,但似乎CRM(如果不是oData本身)在oData查询中使用substringof过滤器时支持某种形式的通配符。
例如使用以下数据:
[{
FullName: "Jim Glynn",
EMailAddress1: "someone_j@example.com"
},
{
FullName: "Nancy Anderson",
EMailAddress1: "someone_c@example.com"
},
{
FullName: "Maria Campbell",
EMailAddress1: "someone_d@example.com"
}]
以下oData查询将返回所有3条记录,而我希望只获得第二条记录:
OrganizationData.svc/ContactSet?$select=FullName,EMailAddress1&$filter=substringof('_c',EMailAddress1)
但是,在字符串值中添加“@”将正确返回第二条记录:
OrganizationData.svc/ContactSet?$select=FullName,EMailAddress1&$filter=substringof('_c@',EMailAddress1)
我们仔细阅读了oData文档以及MS文档,但根本找不到任何对通配符支持的引用。但我们能想到的唯一解释是下划线被用作通配符。如果这是真的,那么知道如何逃避它以正确执行'_c'上的搜索就好了,就像我们上面的第一个查询字符串一样。
任何人都可以提供任何见解吗?
答案 0 :(得分:2)
好的,我们弄清楚了 - 这是一个执行SQL查询,所以它在那里使用SQL通配符。如果在oData或MS文档中有任何提及,那将是很好的,但希望其他人会觉得这很有用。