类型“ Microsoft.Dynamics.CRM.entity”上的属性“字段”不是导航属性或复杂属性。仅导航属性可以展开

时间:2018-12-13 00:40:22

标签: url odata dynamics-crm microsoft-dynamics dynamics-crm-365

在Dynamics 365中遇到此问题似乎应该可以解决,但是却给了我

  

类型'Microsoft.Dynamics.CRM.biz_productbuyer'上的属性'_biz_buyerlookupid_value'不是导航属性或复杂属性。只有导航属性可以展开。

我可以复制此处提供的示例,并且可以找到:

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的自定义实体中有一个查找字段,以引入与该Contact关联的Product名称。

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

使用Web API时,该实体中没有任何叫作biz_buyerlookupid的东西。摆脱$select=并使其完全打开,以便我进行搜索。

有一个名为_biz_buyerlookupid_value的字段。我将其放入$select中,并返回:

{
    @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)

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

1 个答案:

答案 0 :(得分:1)

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

要使用$expand,必须使用架构名称,因此它应类似于:

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

请注意,biz_buyerlookupid区分大小写。

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