Dijeli putem


Pridruživanje i prekid povezivanja redaka tablice pomoću web-API-ja

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