Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将tolower与OData REST API调用一起使用时出错:实体成员正在调用无效的属性或方法_Rest_Dynamics Crm_Odata - Fatal编程技术网

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

将tolower与OData REST API调用一起使用时出错:实体成员正在调用无效的属性或方法,rest,dynamics-crm,odata,Rest,Dynamics Crm,Odata,正如所建议的那样,我应该能够应用tolower对OrganizationData.svc端点进行不区分大小写的字段匹配,并使用REST调用 这是我的GET请求: /XRMServices/2011/OrganizationData.svc/ContactSet?$filter=tolower(EMailAddress1) eq 'me@awesome.com' 我得到以下结果: <error xmlns="http://schemas.microsoft.com/ado/2007/08/

正如所建议的那样,我应该能够应用
tolower
OrganizationData.svc
端点进行不区分大小写的字段匹配,并使用REST调用

这是我的
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
字段进行不区分大小写的匹配

(注意:我知道我可以将SQL Server排序规则更改为不区分大小写,但我也需要将其用于Dynamics online)


解决方案

因此,Dynamics REST API的OData实现似乎根本不支持
tolower
。如果需要进行不区分大小写的匹配,我找到的唯一方法就是在本地安装中更改SQL Server


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

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

请查看我问题中的两个“此处”链接,其中显示了如何进行搜索的示例。您应该重新检查。Microsoft CRM中的Odata使用不支持Tolower功能。