Napomena
Za pristup ovoj stranici potrebna je autorizacija. Možete se pokušati prijaviti ili promijeniti direktorije.
Za pristup ovoj stranici potrebna je autorizacija. Možete pokušati promijeniti direktorije.
Pojedinačne zapise u redovima tablice možete povezati s drugim zapisima pomoću odnosa koji postoje između definicija tablice. U OData se odnosi izražavaju kao navigacijska svojstva.
Možete otkriti koja navigacijska svojstva postoje u dokumentu usluge $metadata. Pogledajte Svojstva navigacije web-API-ja. Za postojeće Dataverse tablice, pogledajte Web API EntityType Reference
, za svaku vrstu entiteta, vidi navedena svojstva navigacije s jednom i kolekcijom.
U sljedećoj tablici opisane su tri vrste odnosa između tablica u usluzi Dataverse.
| Tip | Opis | Primjer |
|---|---|---|
| Jedan na više | S jednim zapisom može biti povezano mnogo zapisa. | Zapis računa može sadržavati mnogo zapisa kontakata u contact_customer_accountsnavigacijskom svojstvu vrijednosti zbirke. |
| Više na jedan | Mnogi zapisi mogu se povezati s jednim zapisom. Many-to-One je zrcalna slika odnosa jedan na više. Postoji samo jedna veza. |
Više zapisa kontakata može se povezati s jednim zapisom računa pomoću parentcustomerid_accountsvojstva navigacije s jednom vrijednošću. |
| Mnogo na mnogo | Mnogi zapisi mogu se povezati s mnogim zapisima. |
Svaka sigurnosna uloga (uloga) može sadržavati reference na definiciju korisnika sustava. Obje ove tablice imaju systemuserroles_association vrijednosti zbirke. |
Korištenje navigacijskih svojstava s jednom vrijednošću
Za postojeće zapise na strani više odnosa jedan-na-više ili više na jedan, zapis možete povezati postavljanjem Uri reference na drugi zapis. Najlakši i najčešći način da to učinite jest dodavanje @odata.bind primjedbe nazivu navigacijskog svojstva s jednom vrijednošću, a zatim postavljanje vrijednosti kao Uri drugom zapisu u zahtjevu PATCH .
Povezivanje s navigacijskim svojstvom s jednom vrijednošću
Na primjer, za povezivanje zapisa kontakta s zapisom računa koristeći svojstvo parentcustomerid_account navigacije s jednom vrijednošću:
Zahtjev:
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 Associate table redovima pri kreiranju, također možete povezati nove zapise s postojećim zapisima na isti način.
Diskonsocijacija korištenjem svojstva navigacije s jednom vrijednošću
Za disocijaciju, postavite vrijednost na null.
Zahtjev:
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 disocirate ovom metodom, nemojte uključivati bilješke @odata.bind . Koristite naziv svojstva navigacije s jednom vrijednošću:
Zahtjev:
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)
Dodatne informacije: Osnovno ažuriranje
Ostale metode
Možete koristiti druge metode za postizanje istih rezultata opisanih ranije s jedinstvenim navigacijskim svojstvima.
Koristite sljedeći PUT zahtjev za postavljanje vrijednosti parentcustomerid_account svojstva navigacije s jednom vrijednošću:
Zahtjev:
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
Napomena
Morate koristiti apsolutni URL prilikom postavljanja vrijednosti za @odata.id.
Za uklanjanje reference, koristite ovaj DELETE zahtjev:
Zahtjev:
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štenje navigacijskih svojstava zbirke
Uz OData, obje strane odnosa više na više imaju navigacijska svojstva vrijednosti zbirke. Za odnose jedan-prema-mnogima i mnogima-prema-jedan, tablica na strani 'Jedan' ima svojstvo navigacije vrijedne kolekcije. Nema razlike u načinu rada s bilo kojom od ovih vrsta odnosa dok koristite navigacijska svojstva s vrijednošću kolekcije. Ovaj odjeljak opisuje kako raditi s navigacijskim svojstvima vrijednosti kolekcije za bilo koju vrstu odnosa.
Dodavanje zapisa u zbirku
Sljedeći primjer pokazuje kako dodati zapis kontakta u zbirku računa,contact_customer_accounts koja je dio odnosa jedan-na-više.
Zahtjev:
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
Sljedeći primjer pokazuje kako dodati zapis uloge u zbirku systemusersystemuserroles_association , što je odnos više na više.
Zahtjev:
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 zbirke
Sljedeći primjer pokazuje kako ukloniti zapis kontakta u zbirku računacontact_customer_accounts gdje je contactidvrijednost kontakta 00aa00aa-bb11-cc22-dd33-44ee44ee44ee .
Zahtjev:
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
Sljedeći zahtjev također funkcionira:
Zahtjev:
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
Pogledajte
Uzorak osnovnih operacija web-API-ja (C#)
Uzorak osnovnih operacija web-API-ja (JavaScript na strani klijenta)
Izvođenje operacija pomoću web-API-ja
Sastavljanje HTTP zahtjeva i rukovanje pogreškama
Upitanje podataka pomoću web-API-ja
Stvaranje retka tablice pomoću web-API-ja
Dohvaćanje retka tablice pomoću web-API-ja
Ažuriranje i brisanje redaka tablice pomoću web-API-ja
Korištenje funkcija web-API-ja
Korištenje radnji web-API-ja
Izvršavanje skupnih operacija pomoću web-API-ja
Lažno predstavljanje drugog korisnika pomoću web-API-ja
Izvođenje uvjetnih operacija pomoću web-API-ja