Web API を使用したテーブル行の関連付けと関連付け解除

注意

エンティティとテーブルの違いがわかりませんか? Microsoft Dataverse で「開発者: 用語を理解する」を参照してください。

テーブル (エンティティ) の関連付けおよび関連付け解除には、いくつかの方法があります。 どちらの方法を適用するかは、テーブルを作成しているか更新しているか、および参照されたテーブルまたは参照元テーブルのコンテキストで操作しているかどうかによって異なります。

コレクション値ナビゲーション プロパティへの参照の追加

次の例は、00000000-0000-0000-0000-000000000001opportunityid 値を持つ既存の営業案件を、00000000-0000-0000-0000-000000000002accountid 値を持つアカウントのコレクション値 opportunity_customer_accounts ナビゲーション プロパティに関連付ける方法を示しています。 これは、1:N の関連付けですが、N:N の関連付けに対しては同じ操作を行うことができます。

要求

POST [Organization URI]/api/data/v9.0/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":"[Organization URI]/api/data/v9.0/opportunities(00000000-0000-0000-0000-000000000001)"  
}  

回答

HTTP/1.1 204 No Content  
OData-Version: 4.0  

単一値ナビゲーション プロパティでの参照の変更

次のパターンで PUT リクエストを使用して単一値のナビゲーション プロパティの値を設定することにより、行を関連付けることができます。

要求

PUT [Organization URI]/api/data/v9.0/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":"accounts(00000000-0000-0000-0000-000000000002)"  
}  

回答

HTTP/1.1 204 No Content  
OData-Version: 4.0  

テーブル行への参照の削除

行への参照を削除するには、DELETE 要求を使用します。 それを行う方法は、コレクション値ナビゲーション プロパティまたは単一値ナビゲーション プロパティに参照しているかどうかによって異なります。

要求
コレクション値ナビゲーション プロパティについては、以下を使用します。

DELETE [Organization URI]/api/data/v9.0/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Organization URI]/api/data/v9.0/opportunities(00000000-0000-0000-0000-000000000001) HTTP/1.1  
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  

または、これを使用します。

DELETE [Organization URI]/api/data/v9.0/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 [Organization URI]/api/data/v9.0/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  

作成時にテーブル行を関連付ける

作成時に行を関連付けるで説明されているように、@odata.bind 注釈を使用してナビゲーション プロパティを設定することにより、新しい行を既存の行に関連付けることができます。

1 回の操作で関連テーブルを作成するで説明されているように、詳細な挿入 を使用した関連付けを使用して、新しいテーブルを作成することができます。

更新時のテーブル行の関連付けと関連付け解除

PATCH を使用して単一値のナビゲーション プロパティの値を設定し、行を関連付けたり関連付けを解除したりできます。

更新時にテーブル行を関連付ける

基本アップデートで説明されているのと同じメッセージを使用して更新時に行を関連付けることが出来ますが、単一値のナビゲーション プロパティの値を設定するには、@odata.bind 注釈を使用する必要があります。 次の例では、customerid_account 単一値ナビゲーション プロパティを使用して営業案件に関連付けられた取引先企業を変更します。

要求

PATCH [Organization URI]/api/data/v9.0/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":"accounts(00000000-0000-0000-0000-000000000002)"  
}  

回答

HTTP/1.1 204 No Content  
OData-Version: 4.0  

更新時にテーブル行を関連付けを解除する

値を null に設定することにより、更新時に単一値のナビゲーション プロパティへの参照を削除できます。 この方法では、1 回の操作で複数の参照の関連付けを解除できます。 これを行うには 2 つの方法があります。

@odata.bind 注釈 を使用して、値を null に設定できます。

PATCH [Organization URI]/api/data/v9.0/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1  
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0

{
    "parentaccountid@odata.bind":  null,
    "primarycontactid@odata.bind": null
}


または、単一値のナビゲーション プロパティの名前を使用します。

PATCH [Organization URI]/api/data/v9.0/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1  
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  

{
    "parentaccountid":  null,
    "primarycontactid": null
}

詳細情報: 基本アップデート

コレクション値のナビゲーション プロパティを使用して、更新時にテーブル行を関連付ける

次の例は、コレクション値のナビゲーション プロパティ email_activity_parties を使用して、複数の既存のActivityParty電子メールに関連付ける方法を示しています。

注意

複数のテーブルを更新時にテーブルに関連付けることは、activityparty EntityType / でのみ可能な特別なシナリオです。

要求

PUT [Organization URI]/api/data/v9.0/emails(2479d20d-3a39-e711-8145-e0071b6a2001)/email_activity_parties
Content-Type: application/json  
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0

{
    "value": [
        {
            "partyid_contact@odata.bind":"contacts(a30d4045-fc46-e711-8115-e0071b66df51)",
            "participationtypemask":3
            
        },
        {
            "partyid_contact@odata.bind":"contacts(1dcdda07-3a39-e711-8145-e0071b6a2001)",
            "participationtypemask":2
            
        }
        ]
}

応答

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 を使用する条件付き演算を実行する