使用 Web API 关联和解除关联实体

 

发布日期: 2017年1月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online

可以使用多种方法来关联和解除关联实体。 您应用的方法取决于您是否创建或更新实体以及您是否在引用的实体或正引用实体的环境下运行。

在本主题中

添加对集合值导航属性的引用

删除对实体的引用

更改单值导航属性中的引用

创建时关联实体

更新时关联实体

添加对集合值导航属性的引用

以下示例演示如何将值opportunityid为 00000000-0000-0000-0000-000000000001 的现有商机实体关联至accountid值为 00000000-0000-0000-0000-000000000002 的客户实体的集合值opportunity_customer_accounts导航属性。 这为 1:N 关系,但是您可以执行与 N:N 关系相同的操作。

  • 请求

    POST cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref HTTP/1.1 
    Content-Type: application/json 
    Accept: application/json 
    OData-MaxVersion: 4.0 
    OData-Version: 4.0
    
    {
    "@odata.id":"cc_WebAPI_ServiceURI/opportunities(00000000-0000-0000-0000-000000000001)"
    }
    
  • 响应

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

删除对实体的引用

使用 DELETE 请求删除对实体的引用。 您执行此操作的方法会有所不同,取决于您是引用集合值导航属性还是单值导航属性。

  • 请求
    对于集合值导航属性,请使用以下选项。

    DELETE cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=cc_WebAPI_ServiceURI/opportunities(00000000-0000-0000-0000-000000000001) HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    或请使用此选项。

    DELETE cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts(00000000-0000-0000-0000-000000000001)/$ref HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
  • 请求
    对于单值导航属性,请删除 $id 查询字符串参数。

    DELETE cc_WebAPI_ServiceURI/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
  • 响应
    不论通过哪种方式,成功响应对应的状态为 204。

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

更改单值导航属性中的引用

您可以通过使用以下模式的 PUT 请求设置单值导航属性的值来关联实体。

  • 请求

    PUT cc_WebAPI_ServiceURI/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref HTTP/1.1
    Content-Type: application/json
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
    {
     "@odata.id":"cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)"
    }
    
  • 响应

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

创建时关联实体

在一个操作中创建相关实体 中所述,可使用深层插入创建具有关系的实体。

更新时关联实体

您可以使用 基本更新 中描述的相同消息,在更新时关联实体,但必须使用 @odata.bind 批注设置单值导航属性的值。 以下示例使用 customerid_account 单值导航属性更改关联至商机的客户。

  • 请求

    PATCH cc_WebAPI_ServiceURI/opportunities(00000000-0000-0000-0000-000000000001) HTTP/1.1
    Content-Type: application/json
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
    {
     "customerid_account@odata.bind":"cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)"
    }
    
  • 响应

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

另请参阅

Web API 基本操作示例 (C#)
Web API 基本操作示例(客户端 JavaScript)
使用 Web API 执行操作
撰写 HTTP 请求并处理错误
使用 Web API 查询数据
使用 Web API 创建实体
使用 Web API 检索实体
使用 Web API 更新和删除实体
使用 Web API 功能
使用 Web API 操作
使用 Web API 执行批处理操作
使用 Web API 模拟其他用户
使用 Web API 执行条件操作

Microsoft Dynamics 365

© 2017 Microsoft。 保留所有权利。 版权