如何使用 odata 端点检索地址
How to retrieve addresses using the odata endpoint
我正在尝试检索标准实体的地址。
请求如下:
https://mycrm.api.crm4.dynamics.com/api/data/v9.1/contacts(guid)
在这个例子中,我得到了所有字段,但我感兴趣的是address1_addressid
,它似乎是一个Guid,引用了一些记录,但我在"Many to One" 我使用以下命令检索的关系列表:
https://mycrm.api.crm4.dynamics.com/api/data/v9.1/EntityDefinitions(LogicalName='contact')?$select=LogicalName&$expand=ManyToOneRelationships($select=ReferencingAttribute,ReferencedEntity)
我想以通用方式检索这些地址,因为我正在处理通用 NetStandard 2.0 库。我将无法知道我将在哪个实体上工作,因此将无法对地址字段名称列表进行硬编码。
这是查找联系地址关系的一种方法:
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
的数据类型上。
Property 'address1_addressid' on type 'Microsoft.Dynamics.CRM.contact'
is not a navigation property or complex property. Only navigation
properties can be expanded.
您似乎不必使用 $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
。
之前的错误消息谈到了导航 属性 所以我试了一下。使用那个 属性 命名允许我扩展联系人的地址信息:
https://myOrg.api.crm.dynamics.com/api/data/v9.1/contacts(guid)?$expand=Contact_CustomerAddress
有趣的是,扩展该导航 属性 returns 所有 3 个客户地址:
我正在尝试检索标准实体的地址。
请求如下:
https://mycrm.api.crm4.dynamics.com/api/data/v9.1/contacts(guid)
在这个例子中,我得到了所有字段,但我感兴趣的是address1_addressid
,它似乎是一个Guid,引用了一些记录,但我在"Many to One" 我使用以下命令检索的关系列表:
https://mycrm.api.crm4.dynamics.com/api/data/v9.1/EntityDefinitions(LogicalName='contact')?$select=LogicalName&$expand=ManyToOneRelationships($select=ReferencingAttribute,ReferencedEntity)
我想以通用方式检索这些地址,因为我正在处理通用 NetStandard 2.0 库。我将无法知道我将在哪个实体上工作,因此将无法对地址字段名称列表进行硬编码。
这是查找联系地址关系的一种方法:
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
的数据类型上。
Property 'address1_addressid' on type 'Microsoft.Dynamics.CRM.contact' is not a navigation property or complex property. Only navigation properties can be expanded.
您似乎不必使用 $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
。
之前的错误消息谈到了导航 属性 所以我试了一下。使用那个 属性 命名允许我扩展联系人的地址信息:
https://myOrg.api.crm.dynamics.com/api/data/v9.1/contacts(guid)?$expand=Contact_CustomerAddress
有趣的是,扩展该导航 属性 returns 所有 3 个客户地址: