opomba,
Dostop do te strani zahteva pooblastilo. Poskusite se vpisati alispremeniti imenike.
Dostop do te strani zahteva pooblastilo. Poskusite lahko spremeniti imenike.
Posamezne zapise v vrsticah tabele lahko povežete z drugimi zapisi z relacijami med definicijami tabel. V OData so odnosi izraženi kot lastnosti krmarjenja.
Odkrijete lahko, katere lastnosti krmarjenja obstajajo v dokumentu storitve $metadata. Glejte Lastnosti krmarjenja po spletnem API-ju. Za obstoječe tabele Common Data Service si oglejte Sklic na vrsto entitete spletnega API-ja, za vsako vrsto entitete pa si oglejte navedene lastnosti krmarjenja z eno vrednostjo in vrednostjo zbirke.
V spodnji tabeli so opisane tri vrste odnosov med tabelami v storitvi Common Data Service.
| Vrsta | Opis | Primer |
|---|---|---|
| Ena proti mnogam | Z enim zapisom je lahko povezanih veliko zapisov. | Zapis kupca ima lahko veliko zapisov stikov v contact_customer_accountslastnosti krmarjenja z vrednostjo zbirke. |
| Veliko proti enemu | Z enim zapisom je mogoče povezati veliko zapisov. Many-to-One je zrcalna slika odnosa ena proti mnogim. Obstaja samo eno razmerje. |
Več zapisov stikov je mogoče povezati z enim zapisom kupca z parentcustomerid_accountuporabo lastnosti krmarjenja z eno vrednostjo. |
| Veliko proti mnogim | Veliko zapisov je mogoče povezati z mnogimi zapisi. |
Vsaka varnostna vloga (vloga) lahko vključuje sklicevanja na definicijo sistemskega uporabnika. Obe tabeli imata lastnost systemuserroles_associationkrmarjenja z vrednostjo zbirke. |
Uporaba lastnosti krmarjenja z eno vrednostjo
Za obstoječe zapise na strani »mnogo « v razmerju »ena proti mnogim« ali »več proti ena« lahko zapis povežete tako, da nastavite sklic »URI« na drug zapis. Najlažji in najpogostejši način za to je, da dodate opombo @odata.bind imenu lastnosti krmarjenja z eno vrednostjo in nato nastavite vrednost kot Uri na drugi zapis v zahtevi PATCH .
Povezovanje z lastnostjo krmarjenja z eno vrednostjo
Če želite na primer povezati zapis stika z kupcem z lastnostjo parentcustomerid_account krmarjenja z eno vrednostjo:
Prositi:
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)"
}
Odziv:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Kot je opisano v razdelku Povezovanje vrstic tabele ob ustvarjanju, lahko nove zapise povežete tudi z obstoječimi zapisi na enak način.
Prekinitev povezave z lastnostjo krmarjenja z eno vrednostjo
Če želite prekiniti povezavo, lahko preprosto nastavite vrednost na null.
Prositi:
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
}
Odziv:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Pri ločitvi na ta način vam ni treba vključiti opombe @odata.bind . Preprosto lahko uporabite ime lastnosti krmarjenja z eno vrednostjo:
Prositi:
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
}
Odziv:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Več informacij: Osnovna posodobitev
Druge metode
Obstajajo tudi drugi načini za doseganje enakih rezultatov, kot so bili opisani prej z enovrednostnimi navigacijskimi lastnostmi.
Za nastavitev vrednosti parentcustomerid_account lastnosti krmarjenja z eno vrednostjo lahko uporabite to PUT zahtevo:
Prositi:
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)"
}
Odziv:
HTTP/1.1 204 NoContent
OData-Version: 4.0
opomba,
Opomba: Pri nastavljanju vrednosti za @odata.id.
Če želite odstraniti sklic, lahko uporabite tudi to DELETE zahtevo:
Prositi:
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
Odziv:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Uporaba lastnosti krmarjenja z vrednostjo zbirke
S funkcijo OData imata obe strani razmerja "več proti mnogim" lastnosti krmarjenja z vrednostjo zbirke. Za odnose ena proti več in več proti ena ima tabela ena stran »Ena« lastnost krmarjenja z vrednostjo zbirke. Ni razlike, kako delate s katero koli od teh vrst relacij, medtem ko uporabljate lastnosti krmarjenja z vrednostjo zbirke. V tem razdelku je opisano delo z napravami krmarjenja z vrednostjo zbirke s katero koli vrsto relacije.
Dodajanje zapisa v zbirko
V tem primeru je prikazano, kako dodate zapis stika v zbirko kupcevcontact_customer_accounts , ki je del odnosa ena proti mnogim.
Prositi:
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)"
}
Odziv:
HTTP/1.1 204 NoContent
OData-Version: 4.0
V tem primeru je prikazano, kako dodati zapis vloge v zbirko systemusersystemuserroles_association , ki je relacija "več proti mnogim".
Prositi:
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)"
}
Odziv:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Odstranjevanje zapisa iz zbirke
V spodnjem primeru je prikazano, kako odstranite zapis stika v zbirko kupcevcontact_customer_accounts, kjer je vrednost stika contactid .00aa00aa-bb11-cc22-dd33-44ee44ee44ee
Prositi:
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
Odziv:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Deluje tudi naslednja zahteva:
Prositi:
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
Odziv:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Glej tudi
Vzorec osnovnih operacij spletnega API-ja (C#)
Vzorec osnovnih operacij spletnega API-ja (JavaScript na strani odjemalca)
Izvajanje operacij s spletnim API-jem
Sestavljanje zahtev HTTP in obravnavanje napak
Poizvedovanje podatkov s spletnim API-jem
Ustvarjanje vrstice tabele s spletnim API-jem
Pridobivanje vrstice tabele s spletnim API-jem
Posodabljanje in brisanje vrstic tabele s spletnim API-jem
Uporaba funkcij spletnega API-ja
Uporaba dejanj spletnega API-ja
Izvajanje paketnih operacij s spletnim API-jem
Lažno predstavljanje drugega uporabnika s spletnim API-jem
Izvajanje pogojnih operacij s spletnim API-jem