无法使用 OData 端点检索选定的查找

Cannot retrieve selected lookups using the OData endpoint

过滤 OData 请求时我无法检索查找字段。

我使用了以下请求:

https://mycrm.api.crm4.dynamics.com/api/data/v9.1/contacts(guid)?$select=contactid,ownerid,createdby,new_expirefin,new_testcumul_stat```

此请求检索 contactid、new_expirefin 和 new_testcumul_stat,但没有 ownerid 和 createdby 的踪迹。

另一方面,这个请求:

https://mycrm.api.crm4.dynamics.com/api/data/v9.1/contacts(guid)

return 所有字段,包括其他请求中缺少的字段。查找作为 Guid 发送。

两个请求都使用

Prefer = odata.include-annotations="*"

header。知道我不知道哪一列是查找(我正在处理通用库),我如何检索这些查找?

使用格式 _lookupName_value 可以检索查询:

https://myOrg.api.crm.dynamics.com/api/data/v9.1/contacts(guid)?$select=contactid,fullname,_ownerid_value,_createdby_value

这当然留下了知道哪些字段是查找的问题,因此需要这种格式。

这可以帮助:
https://myOrg.api.crm.dynamics.com/api/data/v9.1/EntityDefinitions(LogicalName='contact')?$select=LogicalName&$expand=ManyToOneRelationships($select=ReferencingAttribute,ReferencedEntity)