Deli z drugimi prek


Povezovanje in prekinitev povezave vrstic tabele s spletnim API-jem

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