首页 > 解决方案 > 类型“Microsoft.Dynamics.CRM.entity”的属性“字段”不是导航属性或复杂属性。只能展开导航属性

问题描述

在 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 Buyer因此,我在一个名为或的自定义实体中有一个查找字段biz_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

标签: urlodatadynamics-crmmicrosoft-dynamicsdynamics-crm-365

解决方案


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

要使用$expand,您必须使用模式名称,所以它应该如下所示:

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

并注意biz_buyerlookupid区分大小写。

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


推荐阅读