Nota
Capaian ke halaman ini memerlukan kebenaran. Anda boleh cuba mendaftar masuk atau menukar direktori.
Capaian ke halaman ini memerlukan kebenaran. Anda boleh cuba menukar direktori.
Anda boleh mengaitkan rekod individu dalam baris jadual dengan rekod lain menggunakan perhubungan yang wujud antara takrifan jadual. Dalam OData, perhubungan dinyatakan sebagai sifat navigasi.
Anda boleh menemui sifat navigasi yang wujud dalam dokumen perkhidmatan $metadata. Lihat Sifat Navigasi API Web. Untuk jadual Dataverse sedia ada, lihat Rujukan EntityType API Web, untuk setiap jenis entiti, lihat sifat navigasi bernilai tunggal dan nilai koleksi yang disenaraikan.
Jadual berikut menerangkan tiga jenis perhubungan antara jadual dalam Dataverse.
| Jenis | Keterangan | Contoh |
|---|---|---|
| Satu kepada Banyak | Satu rekod boleh mempunyai banyak rekod yang dikaitkan dengannya. | Rekod akaun boleh mempunyai banyak rekod kenalan dalam contact_customer_accountssifat navigasi bernilai koleksi. |
| Banyak kepada Satu | Banyak rekod boleh dikaitkan dengan satu rekod. Many-to-One ialah imej cermin hubungan One-to-Many. Hanya ada satu hubungan. |
Berbilang rekod kenalan boleh dikaitkan dengan satu rekod akaun menggunakan parentcustomerid_accountsifat navigasi bernilai tunggal. |
| Banyak kepada Banyak | Banyak rekod boleh dikaitkan dengan banyak rekod. | Setiap peranan keselamatan (peranan) mungkin termasuk rujukan kepada definisi pengguna sistem. Kedua-dua jadual ini mempunyai systemuserroles_associationsifat navigasi bernilai koleksi. |
Menggunakan sifat navigasi bernilai tunggal
Untuk rekod sedia ada pada banyak bahagian perhubungan satu-ke-banyak atau banyak-ke-satu, anda boleh mengaitkan rekod dengan mengesetkan rujukan Uri kepada rekod lain. Cara paling mudah dan paling biasa untuk melakukan ini ialah dengan menambahkan @odata.bind anotasi pada nama sifat navigasi bernilai tunggal dan kemudian mengesetkan nilai sebagai Uri kepada rekod lain dalam PATCH permintaan.
Kaitkan dengan sifat navigasi bernilai tunggal
Contohnya, untuk mengaitkan rekod kenalan kepada akaun menggunakan parentcustomerid_account sifat navigasi nilai tunggal:
Permintaan:
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)"
}
Respons:
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 diterangkan dalam Kaitkan baris jadual pada cipta, rekod baharu juga boleh dikaitkan dengan rekod sedia ada dengan cara yang sama.
Nyahassociasikan dengan sifat navigasi bernilai tunggal
Jika anda ingin memutuskan pergaulan, anda hanya boleh menetapkan nilai kepada null.
Permintaan:
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
}
Respons:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Apabila memutuskan hubungan dengan cara ini, anda tidak perlu memasukkan @odata.bind anotasi. Anda hanya boleh menggunakan nama sifat navigasi bernilai tunggal:
Permintaan:
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
}
Respons:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Maklumat lanjut: Kemas kini asas
Kaedah lain
Terdapat cara lain untuk mencapai hasil yang sama yang diterangkan sebelum ini dengan sifat navigasi bernilai tunggal.
Anda boleh menggunakan permintaan berikut PUT untuk mengesetkan nilai parentcustomerid_account sifat navigasi nilai tunggal:
Permintaan:
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)"
}
Respons:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Nota
Nota: Anda mesti menggunakan URL mutlak apabila menetapkan nilai untuk @odata.id.
Untuk mengalih keluar rujukan, anda juga boleh menggunakan permintaan ini DELETE :
Permintaan:
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
Respons:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Menggunakan sifat navigasi bernilai koleksi
Dengan OData, kedua-dua belah perhubungan banyak dengan banyak mempunyai sifat navigasi bernilai koleksi. Untuk perhubungan satu-ke-banyak dan banyak-ke-satu, jadual satu bahagian 'Satu' mempunyai sifat navigasi bernilai koleksi. Tiada perbezaan cara anda bekerja dengan mana-mana jenis perhubungan ini semasa menggunakan sifat navigasi bernilai koleksi. Bahagian ini menerangkan cara bekerja dengan sifat navigasi bernilai koleksi dengan sebarang jenis perhubungan.
Tambah rekod pada koleksi
Contoh berikut menunjukkan cara menambah rekod kenalan pada koleksi akauncontact_customer_accounts , yang merupakan sebahagian daripada perhubungan satu-ke-banyak.
Permintaan:
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)"
}
Respons:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Contoh berikut menunjukkan cara menambah rekod peranan pada koleksi systemusersystemuserroles_association , yang merupakan perhubungan banyak kepada banyak.
Permintaan:
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)"
}
Respons:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Alih keluar rekod daripada koleksi
Contoh berikut menunjukkan cara mengalih keluar rekod kenalan ke koleksi akauncontact_customer_accounts di mana nilai kenalan contactid adalah 00aa00aa-bb11-cc22-dd33-44ee44ee44ee.
Permintaan:
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
Respons:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Permintaan berikut juga berfungsi:
Permintaan:
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
Respons:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Lihat juga
Sampel Operasi Asas API Web (C#)
Sampel Operasi Asas API Web (JavaScript bahagian pelanggan)
Melaksanakan operasi menggunakan API Web
Mengarang permintaan Http dan mengendalikan ralat
Pertanyaan Data menggunakan API Web
Cipta baris jadual menggunakan API Web
Dapatkan semula baris jadual menggunakan API Web
Kemas kini dan padamkan baris jadual menggunakan API Web
Gunakan fungsi API Web
Gunakan tindakan API Web
Laksanakan operasi kumpulan menggunakan API Web
Menyamar sebagai pengguna lain menggunakan API Web
Lakukan operasi bersyarat menggunakan API Web