Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda bisa mengaitkan rekaman individual dalam baris tabel dengan rekaman lain menggunakan hubungan yang ada di antara definisi tabel. Di OData, hubungan dinyatakan sebagai properti navigasi.
Anda dapat menemukan properti navigasi mana yang ada di dokumen layanan $metadata. Lihat Properti Navigasi API Web. Untuk tabel Dataverse yang ada, lihat Referensi EntityType API Web
, untuk setiap jenis entitas, lihat properti navigasi bernilai tunggal dan bernilai koleksi yang tercantum.
Tabel berikut ini menjelaskan tiga jenis hubungan antar tabel di Dataverse.
| Tipe | Description | Example |
|---|---|---|
| Satu-ke-banyak | Satu catatan dapat memiliki banyak catatan yang terkait dengannya. | Rekaman akun dapat memiliki banyak rekaman kontak di contact_customer_accountsproperti navigasi dengan nilai koleksi. |
| Banyak ke Satu | Banyak rekaman dapat dikaitkan dengan satu rekaman. Banyak ke Satu adalah bayangan cermin dari hubungan Satu-ke-Banyak. Hanya ada satu hubungan. |
Beberapa catatan kontak dapat diasosiasikan dengan satu catatan akun menggunakan parentcustomerid_accountproperti navigasi bernilai tunggal. |
| Banyak ke Banyak | Banyak rekaman dapat dikaitkan dengan banyak rekaman. | Setiap peran keamanan (peran) mungkin menyertakan referensi ke definisi systemuser. Kedua tabel ini memiliki systemuserroles_associationproperti navigasi bernilai koleksi. |
Menggunakan properti navigasi bernilai tunggal
Untuk rekaman yang ada di sisi banyak dari relasi satu-ke-banyak atau banyak-ke-satu, rekaman tersebut dapat Anda kaitkan dengan mengatur referensi URI ke rekaman lain. Cara yang mudah dan paling umum untuk melakukan ini adalah dengan menambahkan anotasi @odata.bind ke nama properti navigasi bernilai tunggal lalu pengaturan nilainya sebagai Uri ke catatan lain dalam permintaan PATCH.
Mengaitkan dengan properti navigasi bernilai tunggal
Misalnya, untuk mengaitkan rekaman kontak ke rekaman akun menggunakan parentcustomerid_account properti navigasi bernilai tunggal:
Minta:
PATCH [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
If-Match: *
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"parentcustomerid_account@odata.bind": "accounts(ce9eaaef-f718-ed11-b83e-00224837179f)"
}
Jawaban:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Seperti yang dijelaskan dalam Mengaitkan baris tabel saat dibuat, Anda juga bisa mengaitkan rekaman baru dengan rekaman yang sudah ada dengan cara yang sama.
Memisahkan dengan menggunakan properti navigasi bernilai tunggal
Untuk memisahkan, atur nilai ke null.
Minta:
PATCH [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
If-Match: *
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"parentcustomerid_account@odata.bind": null
}
Jawaban:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Saat Anda melakukan pemisahan menggunakan metode ini, jangan sertakan anotasi @odata.bind. Gunakan nama properti navigasi bernilai tunggal:
Minta:
PATCH [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
If-Match: *
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"parentcustomerid_account": null
}
Jawaban:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Informasi selengkapnya: Pembaruan dasar
Metode lain
Anda dapat menggunakan metode lain untuk mencapai hasil yang sama yang dijelaskan sebelumnya dengan properti navigasi bernilai tunggal.
Gunakan permintaan berikut PUT untuk mengatur nilai parentcustomerid_account properti navigasi bernilai tunggal:
Minta:
PUT [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)/parentcustomerid_account/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"@odata.id": "[Organization URI]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)"
}
Jawaban:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Nota
Anda harus menggunakan URL absolut saat mengatur nilai untuk @odata.id.
Untuk menghapus referensi, gunakan permintaan ini DELETE :
Minta:
DELETE [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)/parentcustomerid_account/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Jawaban:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Menggunakan properti navigasi bernilai koleksi
Dengan OData, kedua sisi hubungan banyak ke-banyak memiliki properti navigasi dengan nilai koleksi. Untuk relasi satu ke banyak dan banyak ke satu, tabel di sisi 'Satu' memiliki properti navigasi yang bernilai koleksi. Tidak ada perbedaan dalam cara Anda berinteraksi dengan salah satu jenis relasi ini saat menggunakan properti navigasi yang bernilai koleksi. Bagian ini menjelaskan cara bekerja dengan properti navigasi bernilai koleksi untuk berbagai jenis relasi.
Menambahkan rekaman ke koleksi
Contoh berikut menunjukkan cara menambahkan catatan kontak ke koleksi akuncontact_customer_accounts , yang merupakan bagian dari hubungan satu ke banyak.
Minta:
POST [Organization Uri]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)/contact_customer_accounts/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"@odata.id": "[Organization URI]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)"
}
Jawaban:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Contoh berikut menunjukkan cara menambahkan rekaman peran ke koleksi systemusersystemuserroles_association, yang merupakan relasi banyak-ke-banyak.
Minta:
POST [Organization Uri]/api/data/v9.2/systemusers(34dcbaf5-f718-ed11-b83e-00224837179f)/systemuserroles_association/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"@odata.id": "[Organization URI]/api/data/v9.2/roles(886b280c-6396-4d56-a0a3-2c1b0a50ceb0)"
}
Jawaban:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Menghapus rekaman dari koleksi
Contoh berikut menunjukkan cara menghapus rekaman kontak ke kumpulan akuncontact_customer_accounts tempat nilai kontak contactid adalah 00aa00aa-bb11-cc22-dd33-44ee44ee44ee.
Minta:
DELETE [Organization Uri]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)/contact_customer_accounts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Jawaban:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Permintaan berikut juga berfungsi:
Minta:
DELETE [Organization Uri]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)/contact_customer_accounts/$ref?$id=[Organization URI]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Jawaban:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Lihat juga
Sampel Operasi Dasar API Web (C#)
Sampel Operasi Dasar API Web (JavaScript sisi klien)
Lakukan operasi menggunakan API Web
Buat permintaan Http dan tangani kesalahan
Data kueri menggunakan API Web
Membuat baris tabel menggunakan API Web
Mengambil baris tabel menggunakan API Web
Memperbarui dan menghapus baris tabel menggunakan API Web
Menggunakan fungsi API Web
Gunakan tindakan Web API
Menjalankan operasi batch menggunakan API Web
Meniru pengguna lain menggunakan API Web
Melakukan operasi bersyarah menggunakan API Web