Notă
Accesul la această pagină necesită autorizare. Puteți încerca să vă conectați sau să modificați directoarele.
Accesul la această pagină necesită autorizare. Puteți încerca să modificați directoarele.
Puteți asocia înregistrări individuale din rândurile de tabel cu alte înregistrări utilizând relațiile care există între definițiile tabelului. În OData, relațiile sunt exprimate ca proprietăți de navigare.
Puteți descoperi ce proprietăți de navigare există în documentul de serviciu $metadata. Consultați Proprietăți de navigare API web. Pentru tabelele Dataverse existente, vezi Web API EntityType Reference
, pentru fiecare tip de entitate, vezi proprietățile de navigare listate cu valoare uninominală și proprietate de navigație cu valoare unică și valoare de colecție.
Următorul tabel descrie cele trei tipuri de relații dintre tabele din Dataverse.
| Tip | Descriere | Exemplu |
|---|---|---|
| Unu-la-mai mulți | O înregistrare poate avea mai multe înregistrări asociate. | O înregistrare de cont poate avea multe înregistrări de contact în proprietatea contact_customer_accountsde navigare cu valoare de colecție. |
| Mai mulți la unu | Multe înregistrări pot fi asociate cu o singură înregistrare. Mulți-la-unu este imaginea în oglindă a unei relații unu-la-mulți. Există o singură relație. |
Mai multe înregistrări de contact pot fi asociate la o singură înregistrare de cont utilizând proprietatea parentcustomerid_accountde navigare cu o singură valoare. |
| Mai mulți-la-mai mulți | Multe înregistrări pot fi asociate cu multe înregistrări. | Fiecare rol de securitate (rol) poate include referințe la definiția unui utilizator de sistem. Ambele tabele au o systemuserroles_associationproprietate de navigare cu valoare de colecție. |
Utilizarea proprietăților de navigare cu o singură valoare
Pentru înregistrările existente pe partea mai multe a unei relații unu-la-mai mulți sau mai mulți-la-unu, puteți asocia înregistrarea setând o referință Uri la cealaltă înregistrare. Cel mai simplu și mai comun mod de a face acest lucru este să adăugați @odata.bind adnotarea la numele proprietății de navigare cu o singură valoare și apoi să setați valoarea ca Uri la cealaltă înregistrare dintr-o PATCH solicitare.
Asociați cu o proprietate de navigare cu o singură valoare
De exemplu, pentru a asocia un record de contact unui record de cont folosind proprietatea parentcustomerid_account de navigare cu valoare unică:
Cerere:
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)"
}
Răspuns:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Așa cum este descris în rândurile tabelului Associate pe create, poți asocia și înregistrări noi cu înregistrări existente în același mod.
Disocierea folosind o proprietate de navigație cu valoare unică
Pentru a disocia, setați valoarea la null.
Cerere:
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
}
Răspuns:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Când te disociezi folosind această metodă, nu include adnotarea @odata.bind . Folosiți numele proprietății de navigație cu valoare unică:
Cerere:
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
}
Răspuns:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Informații suplimentare: Actualizare de bază
Alte metode
Poți folosi alte metode pentru a obține aceleași rezultate descrise anterior cu proprietăți de navigație cu o singură valoare.
Folosiți următoarea PUT cerere pentru a seta valoarea proprietății parentcustomerid_account de navigare cu valoare unică:
Cerere:
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)"
}
Răspuns:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Notă
Trebuie să folosești un URL absolut atunci când setezi valoarea pentru @odata.id.
Pentru a elimina referința, folosește această DELETE cerere:
Cerere:
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
Răspuns:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Utilizarea proprietăților de navigare cu valoare de colecție
Cu OData, ambele părți ale unei relații mai mulți-la-mai mulți au proprietăți de navigare cu valoare de colecție. Pentru relațiile unu-la-mulți și mulți-la-unu, tabelul de pe partea "Unu" are o proprietate de navigare valorificată în colecție. Nu există nicio diferență în modul în care lucrezi cu oricare dintre aceste tipuri de relații atunci când folosești proprietăți de navigare cu valori de colecție. Această secțiune descrie cum să lucrezi cu proprietăți de navigare cu valori de colecție pentru orice tip de relație.
Adăugarea unei înregistrări la o colecție
Următorul exemplu arată cum să adăugați o înregistrare de contact la colecția de conturicontact_customer_accounts , care face parte dintr-o relație unu-la-mai-mulți.
Cerere:
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)"
}
Răspuns:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Următorul exemplu arată cum să adăugați o înregistrare de rol la colecția systemusersystemuserroles_association , care este o relație mai-mulți-la-mai-mulți.
Cerere:
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)"
}
Răspuns:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Eliminarea unei înregistrări dintr-o colecție
Următorul exemplu arată cum să eliminați o înregistrare de contact din colecția de conturicontact_customer_accounts unde este contactidvaloarea de contact 00aa00aa-bb11-cc22-dd33-44ee44ee44ee .
Cerere:
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
Răspuns:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Următoarea solicitare funcționează și ea:
Cerere:
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
Răspuns:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Consultați și
Exemplu de operațiuni de bază API web (C#)
Exemplu de operațiuni de bază API web (JavaScript pe partea clientului)
Efectuarea operațiunilor utilizând API-ul web
Compuneți solicitări HTTP și gestionați erorile
Interogarea datelor utilizând API-ul web
Crearea unui rând de tabel utilizând API-ul web
Preluarea unui rând de tabel utilizând API-ul web
Actualizarea și ștergerea rândurilor de tabel utilizând API-ul web
Utilizarea funcțiilor API web
Utilizați acțiunile Web API
Executarea operațiunilor batch utilizând API-ul web
Uzurparea identității unui alt utilizator utilizând API-ul web
Efectuați operațiuni condiționate utilizând API-ul web