我正在尝试检索标准实体上的地址。
请求如下:
https://mycrm.api.crm4.dynamics.com/api/data/v9.1/contacts(guid)
在此示例中,我获得了所有字段,但是我感兴趣的字段是address1_addressid
,它似乎是Guid,引用了一些记录,但是在“很多我使用以下命令检索到一个“关系列表:
https://mycrm.api.crm4.dynamics.com/api/data/v9.1/EntityDefinitions(LogicalName='contact')?$select=LogicalName&$expand=ManyToOneRelationships($select=ReferencingAttribute,ReferencedEntity)
由于我正在使用通用NetStandard 2.0库,因此我想以通用方式检索这些地址。我将无法知道我将在哪个实体上工作,因此将无法对地址字段名称列表进行硬编码。
答案 0 :(得分:2)
这里是查找“联系地址”关系的一种方法:
https://myOrg.api.crm.dynamics.com/api/data/v9.1/EntityDefinitions(LogicalName='customeraddress')?$select=LogicalName&$expand=ManyToOneRelationships($select=ReferencingAttribute,ReferencedEntity)
我遇到https://myOrg.api.crm.dynamics.com/api/data/v9.1/contacts(guid)?$expand=address1_addressid
错误。
我查看了元数据,发现address1_addressid
具有一种主键:
考虑到尝试扩展address1_addressid
时出现的错误消息,我认为问题是address1_addressid
的数据类型。
类型为“ Microsoft.Dynamics.CRM.contact”的属性“ address1_addressid” 不是导航属性或复杂属性。仅导航 属性可以扩展。
您似乎不必使用$expand
来获取地址详细信息,而必须另外打电话:
https://myOrg.api.crm.dynamics.com/api/data/v9.1/customeraddresses(guid)
更新
通过以下查询来查看完整的联系地址关系:https://myOrg.api.crm.dynamics.com/api/data/v9.1/EntityDefinitions(LogicalName='customeraddress')?$select=LogicalName&$expand=ManyToOneRelationships
。
我发现ReferencedEntityNavigationPropertyName
设置为Contact_CustomerAddress
。
之前,该错误消息讨论了Navigation属性,因此我尝试了一下。使用名为的属性,我可以从联系人中扩展地址信息:
https://myOrg.api.crm.dynamics.com/api/data/v9.1/contacts(guid)?$expand=Contact_CustomerAddress