使用tolower与OData REST API调用时出错:实体成员正在调用无效的属性或方法

时间:2014-02-06 11:37:28

标签: rest dynamics-crm odata

根据建议herehere,我应该可以应用tolower来对OrganizationData.svc端点的REST调用执行不区分大小写的字段匹配。< / p>

这是我的GET请求:

/XRMServices/2011/OrganizationData.svc/ContactSet?$filter=tolower(EMailAddress1) eq 'me@awesome.com'

我得到以下结果:

<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
  <code>-2147220715</code>
  <message xml:lang="en-US">
    Invalid 'where' condition. An entity member is invoking an invalid property or method.
  </message>
</error>

我做错了什么?如何使用REST端点对EmailAddress1实体上的Contact字段进行不区分大小写的匹配?

(注意:我知道我可以将SQL Server排序规则更改为不区分大小写,但我也需要这样才能在线运行Dynamics。)


因此看起来在动态REST API的OData实现中根本不支持tolower。如果您需要进行不区分大小写的匹配,我找到的唯一方法是在内部部署安装中更改SQL Server database collation

对于Dynamics在线,您可能需要编写一个触发实体创建/更新的插件,并将该字段转换为小写。

1 个答案:

答案 0 :(得分:0)

你无法做到这一点。默认情况下,所有信息(以及CRM Online中)都存储在区分大小写的数据库中,因此您将无法进行不区分大小写的搜索。