属性 'field' 类型 'Microsoft.Dynamics.CRM.entity' 不是导航 属性 或复杂 属性。只能展开导航属性

Property 'field' on type 'Microsoft.Dynamics.CRM.entity' is not a navigation property or complex property. Only navigation properties can be expanded

运行 进入 Dynamics 365 中的这个问题似乎应该有效,但给了我:

Property '_biz_buyerlookupid_value' on type 'Microsoft.Dynamics.CRM.biz_productbuyer' is not a navigation property or complex property. Only navigation properties can be expanded.

我可以复制此处提供的示例,它可以工作找到:

https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/webapi/query-data-web-api#retrieve-related-entities-by-expanding-navigation-properties

基本上是尝试阅读相关领域的内容,这样我就不必再进行查询了。

所以我在名为 Product Buyerbiz_productbuyers 的自定义实体中有一个查找字段,以引入与 Product 关联的 Contact 名称。

当您查看实体的字段时,该字段被称为 biz_buyerlookupid

当您使用网络 API 时,它表示该实体中不存在名为 biz_buyerlookupid 的任何内容。把 $select= 和 运行 去掉,这样我就可以搜索它了。

有一个名为 _biz_buyerlookupid_value 的字段。我把它放入 $select 并且它 returns:

{
    @odata.etag: "W/"20636204"",
    _biz_buyerlookupid_value: "906595fd-2a83-dc11-ae20-000feaed3854",
    biz_productbuyerid: "8be67d14-9efb-4335-98c7-000451a50cef",
}

这两个字段之间显然存在某种关系,但听起来 _biz_buyerlookupid_value 是对 Contacts 的查找。 _biz_buyerlookupid_value 确实对应于 contact 实体中的实际值,即单个 contactid。我检查了。已尝试以下所有方法并收到上述消息:

/api/data/v9.0/biz_productbuyers?$select=_biz_buyerlookupid_value&$expand=_biz_buyerlookupid_value($select=contactid, fullname)

/api/data/v9.0/biz_productbuyers?$select=_biz_buyerlookupid_value&$expand=biz_productbuyerid($select=contactid, fullname)

/api/data/v9.0/biz_productbuyers?$select=biz_productbuyerid&$expand=biz_productbuyerid($select=contactid, fullname)

/api/data/v9.0/biz_productbuyers?$select=biz_productbuyerid&$expand=_biz_buyerlookupid_value($select=contactid, fullname)

那么这是怎么回事?据我所知,它应该从 contact 实体中引入 contactidfullname

我的理解是 _[field]_value 项目会立即为您提供关联项目的 GUID。

要使用 $expand,您必须使用架构名称,因此它应该如下所示:

$expand=biz_buyerlookupid($select=contactid, fullname)

并注意 biz_buyerlookupid 区分大小写。

您可以查看 CRM 实例的元数据以获得正确的大小写:https://[org].crm.dynamics.com/api/data/v9.0/$metadata