Belešku
Pristup ovoj stranici zahteva autorizaciju. Možete pokušati da se prijavite ili da promenite direktorijume.
Pristup ovoj stranici zahteva autorizaciju. Možete pokušati da promenite direktorijume.
Možete povezati pojedinačne zapise u redovima tabele sa drugim zapisima koristeći odnose koji postoje između definicija tabele. U OData, odnosi su izraženi kao svojstva navigacije.
Možete otkriti koje navigaцione osobine postoje u servisnom dokumentu $metadata. Pogledajte Veb API Navigation Properties. Za postojeće Dataverse tabele, pogledajte Veb API EntityTipe Reference, za svaki tip entiteta, pogledajte navedene jednovredne i kolekcionosne navigacione osobine.
Sledeća tabela opisuje tri vrste odnosa između tabela u Dataverse.
| Tip | Opis | Primer |
|---|---|---|
| Jedan-na-mnogo | Jedan zapis može imati mnogo zapisa povezanih sa njim. | Zapis računa može imati mnogo zapisa kontakata u navigaцionoj osobini u vrednosti naknaцije kolekцije.contact_customer_accounts |
| Mnogo-na-jedan | Mnogi zapisi mogu biti povezani sa jednim zapisom. Many-to-One je odraz u ogledalu odnosa jedan-na-mnogi. Postoji samo jedna veza. |
Višestruki zapisi kontakata mogu biti povezani sa jednim zapisom naloga koristeći jednovrednu navigacijsku osobinuparentcustomerid_account. |
| Mnogi-na-mnoge | Mnogi zapisi mogu biti povezani sa mnogim zapisima. | Svaka bezbednosna uloga (uloga) može da sadrži reference na definiciju sistemuser-a. Obe ove tabele imaju svojstvo systemuserroles_associationnavigacije u vrednosti kolekcije. |
Korišćenje jednovrednih svojstava navigacije
Za postojeće zapise na mnogim stranama odnosa jedan-na-više ili više-na-jedan, možete povezati zapis postavljanjem Uri reference na drugi zapis. Najlakši i najčešći način da to uradite je da dodate napomenu @odata.bind na ime jednovredne navigacione osobine, a zatim podesite vrednost kao Uri na drugi zapis u zahtevu PATCH .
Povežite se sa jednovrednom navigacionom osobinom
Na primer, da povežete zapis kontakta sa nalogom koristeći jednovrednu navigacijsku parentcustomerid_account osobinu:
Zahtev:
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)"
}
Odgovor:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Kao što je opisano u Pridružite redove tabele na kreiranju, novi zapisi se takođe mogu povezati sa postojećim zapisima na isti način.
Prekini vezu sa jednovrednom navigacionom osobinom
Ako želite da odvojite, možete jednostavno podesiti vrednost na null.
Zahtev:
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
}
Odgovor:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Kada se razdvajate na ovaj način, ne morate da uključite napomenu @odata.bind . Možete jednostavno koristiti ime jednovredne navigacione osobine:
Zahtev:
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
}
Odgovor:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Više informacija: Osnovno ažuriranje
Druge metode
Postoje i drugi načini da se postignu isti rezultati koji su prethodno opisani sa jednovrednim navigacionim svojstvima.
Možete koristiti sledeći PUT zahtev da podesite vrednost parentcustomerid_account jednovredne navigacione osobine:
Zahtev:
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)"
}
Odgovor:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Belešku
beleške: Morate koristiti apsolutni URL kada podešavate vrednost za @odata.id.
Da biste uklonili referencu, možete koristiti i ovaj DELETE zahtev:
Zahtev:
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
Odgovor:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Korišćenje svojstava navigaцije sa vrednošću kolekцije
Sa OData-om, obe strane odnosa mnogih-na-više imaju navigacione osobine u vrednosti kolekcije. Za odnose jedan-na-više i više-na-jedan, tabela jedan - 'Jedan' strana ima navigacijsku osobinu vrednu kolekcije. Nema razlike u tome kako radite sa bilo kojom od ovih vrsta odnosa dok koristite svojstva navigacije u vrednosti kolekcije. Ovaj odeljak opisuje kako raditi sa svojstvima navigaцije u vrednosti kolekцije sa bilo kojom vrstom odnosa.
Dodajte zapis u kolekciju
Sledeći primer pokazuje kako da dodate zapis kontakta u kolekciju nalogacontact_customer_accounts , koja je deo odnosa jedan-na-više.
Zahtev:
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)"
}
Odgovor:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Sledeći primer pokazuje kako da dodate zapis uloge u kolekciju sistemusersystemuserroles_association , što je odnos više-na-mnogo.
Zahtev:
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)"
}
Odgovor:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Uklanjanje zapisa iz kolekcije
Sledeći primer pokazuje kako da uklonite zapis kontakta u kolekciji nalogacontact_customer_accounts gde je 00aa00aa-bb11-cc22-dd33-44ee44ee44eevrednost kontakta contactid .
Zahtev:
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
Odgovor:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Sledeći zahtev takođe radi:
Zahtev:
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
Odgovor:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Vidi takođe
Uzorak osnovnih operacija Veb API-ja (C #)
Uzorak osnovnih operacija Veb API-ja (JavaScript na strani klijenta)
Obavljanje operacija pomoću Veb API-ja
Sastavite Http zahteve i greške u rukovanju
Upitni podaci pomoću Veb API-ja
Kreiranje reda tabele pomoću Veb API-ja
Preuzmite red tabele koristeći Veb API
Ažurirajte i izbrišite redove tabele pomoću Veb API-ja
Koristite Veb API funkcije
Koristite Veb API akcije
Izvršite batch operacije koristeći Veb API
Lažno predstavljanje drugog korisnika koristeći Veb API
Izvršite uslovne operacije koristeći Veb API