通过在 Xrmtoolbox 中使用 FetchXML Builder,我有一个 OData 4.0 字符串:
.../contacts?$filter=(searchable eq true)
or (contains(firstname, '%25firstName%25)'
or contains(lastname, '%25lastName%25')
or Microsoft.Dynamics.CRM.In(PropertyName= '_accountid_value', PropertyValues=['00000000-0000-0000-0000-000000000000','c198b30d-8d4e-eb11-a812-000d3ab5acdf','6c9caaac-a755-eb11-a812-0022489b9c9c'])
or Microsoft.Dynamics.CRM.In(PropertyName= 'contactid', PropertyValues=['00000000-0000-0000-0000-000000000000','30262317-0a83-eb11-a812-000d3ab02826']))
我已经手动将查询中的“and”改为“or”,所以恐怕只是我遗漏的一个小细节。但是,我以前从未在此工具中使用过 IN 运算符,因此我担心这可能是我使用它的方式的问题/我做错了什么。
我怎么知道字符串有问题? 当我尝试获取数据时,下图显示了 C# 中的代码。这是我无法通过的地方,因为我从 HTTPClient.GetAsync 方法收到“错误请求”。我知道方法调用不是问题,因为我在其他几个地方这样做,因此只能假设它是 OData 字符串。我之前也收到过“错误请求”,并修复了它,使 OData 字符串正确。
有没有其他人遇到过这个问题或知道我忽略的 OData 字符串有什么问题?
编辑: 我检查了@PanagiotisKanavos 链接的文档。不幸的是,这也给了我的“错误请求”。
".../contacts?$filter=(searchable eq true) or (contains(firstname, '%25Mat%25)' or contains(lastname, '%25son%25') or _accountid_value in ('c198b30d-8d4e-eb11-a812-000d3ab5acdf','6c9caaac-a755-eb11-a812-0022489b9c9c') or contactid in ('30262317-0a83-eb11-a812-000d3ab02826'))"