dynamics-crm - OData "contains"与 Dynamics 365 Web API "contains"

标签 dynamics-crm odata dynamics-365 dynamics-crm-365 dynamics-crm-webapi

通过 Web API 查询 Dynamics 365 时,有多个运算符可供选择以过滤查询的数据。其中一个运算符是 contains,它实际上出现了两次。

一个是 OData contains 函数(您可以在标题“标准查询函数”下找到它):

https://msdn.microsoft.com/en-us/library/gg334767.aspx#Filter%20results

例子:

$filter=contains(name,'(sample)')

另一个是 Dynamics 365 Web API 本身的实现:

https://msdn.microsoft.com/en-us/library/mt608053.aspx

我试过这个,但只得到一个通用 SQL 错误:

$filter=Microsoft.Dynamics.CRM.Contains(PropertyName='name',PropertyValue='(sample)')

有什么区别?也许有人甚至可以告诉我如何正确调用 contains 的 Web API 版本?

最佳答案

Latest documentation确认 $filter=contains(name,'(sample)') 是唯一适用于 web api 的语法。正如 Jatin 所说,OData 过滤器在后台转换为查询表达式,一些文章(thisthis)传达了可能的解决方案是直接在 C# 查询表达式中使用 Like 运算符。

我们没有 operator equivalent functions在 web api 中。

我的尝试和观察:

Microsoft.Dynamics.CRM.Contains - 一般 SQL 错误。

$filter=like(name,'%test%') - 发现一个名为“like”的未知函数。这也可能是函数导入或导航属性上的键查找,这是不允许的。

$filter=contains(name, 'test') - 工作

关于dynamics-crm - OData "contains"与 Dynamics 365 Web API "contains",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49935024/

相关文章:

entity-framework - net core odata put和patch嵌套数据结构

dynamics-crm-2011 - 动态 365 : Exporting default customization is not bringing up all the fields including the unmodified ones

asp.net-mvc - 有效实现ASP .NET MVC + Dynamics 365

javascript - 如何解决查找字段自定义过滤中的查询生成器错误?

javascript - 获取OData Binding的编辑数据

javascript - 将参数从 HTML 传递到 javascript (crm 2011)

javascript - 如何以安全的方式读写 OData 调用? (比如不容易受到 CSRF 攻击?)

azure-active-directory - 使用 AAD v2 的 Dynamics 365 API

javascript - 如何确定控件/插件是否是从 CRM 2011 中功能区上的自定义按钮触发的?

css - 如何让网格看起来像 CRM 网格?