Zdieľať cez


Priradenie a zrušenie priradenia riadkov tabuľky pomocou webového rozhrania API

Jednotlivé záznamy v riadkoch tabuľky môžete priradiť k iným záznamom pomocou vzťahov, ktoré existujú medzi definíciami tabuliek. V OData sú vzťahy vyjadrené ako navigačné vlastnosti.

Môžete zistiť, ktoré navigačné vlastnosti existujú v servisnom dokumente $metadata. Pozrite si tému Vlastnosti navigácie webového rozhrania API. Informácie o existujúcich tabuľkách Dataverse nájdete v Referenčných informáciách o type entity webového rozhrania API, pre každý typ entity si pozrite uvedené navigačné vlastnosti s jednou hodnotou a hodnotou kolekcie.

V nasledujúcej tabuľke sú popísané tri typy vzťahov medzi tabuľkami v Dataverse.

Typ Popis Príklad
Jeden k mnohým K jednému záznamu môže byť priradených veľa záznamov. Záznam obchodného vzťahu môže obsahovať veľa záznamov kontaktov v contact_customer_accountsnavigačnej vlastnosti s hodnotou kolekcie.
Mnoho ku jednému K jednému záznamu je možné priradiť veľa záznamov.

Many-to-One je zrkadlovým obrazom vzťahu One-to-Many. Je tu len jeden vzťah.
Viaceré záznamy kontaktov je možné priradiť k jednému záznamu obchodného vzťahu pomocou parentcustomerid_accountvlastnosti navigácie s jednou hodnotou.
Mnohí k mnohým Mnohé záznamy môžu byť priradené k mnohým záznamom. Každá rola zabezpečenia (rola) môže obsahovať odkazy na definíciu systemusera.
Obe tieto tabuľky systemuserroles_association majú navigačnú vlastnosť s hodnotou kolekcie.

Používanie navigačných vlastností s jednou hodnotou

V prípade existujúcich záznamov na strane many vzťahu one-to-many alebo many-to-one môžete priradiť záznam nastavením odkazu Uri na druhý záznam. Najjednoduchší a najbežnejší spôsob, ako to urobiť, je pripojiť @odata.bind anotáciu k názvu navigačnej vlastnosti s jednou hodnotou a potom nastaviť hodnotu ako identifikátor URI k inému záznamu v požiadavke PATCH .

Priradenie k navigačnej vlastnosti s jednou hodnotou

Ak chcete napríklad priradiť záznam kontaktu ku obchodnému vzťahu pomocou parentcustomerid_account vlastnosti navigácie s jednou hodnotou:

Prosiť:

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)"
}

Odpoveď:

HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)

Ako je popísané v časti Priradenie riadkov tabuľky pri vytvorení, nové záznamy môžu byť tiež priradené k existujúcim záznamom rovnakým spôsobom.

Zrušenie priradenia k navigačnej vlastnosti s jednou hodnotou

Ak chcete zrušiť priradenie, môžete jednoducho nastaviť hodnotu na null.

Prosiť:

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
}

Odpoveď:

HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)

Pri asociácii týmto spôsobom nemusíte zahrnúť @odata.bind anotáciu. Môžete jednoducho použiť názov vlastnosti navigácie s jednou hodnotou:

Prosiť:

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
}

Odpoveď:

HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)

Ďalšie informácie: Základná aktualizácia

Iné metódy

Existujú aj iné spôsoby, ako dosiahnuť rovnaké výsledky opísané predtým pomocou jednohodnotových navigačných vlastností.

Na nastavenie hodnoty parentcustomerid_account vlastnosti navigácie s jednou hodnotou môžete použiť nasledujúcu PUT požiadavku:

Prosiť:

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)"
}

Odpoveď:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Poznámka

Poznámka: Pri nastavovaní hodnoty pre @odata.id.

Ak chcete odkaz odstrániť, môžete použiť aj túto DELETE žiadosť:

Prosiť:

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

Odpoveď:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Používanie navigačných vlastností s hodnotou kolekcie

S funkciou OData majú obe strany vzťahu many-to-many navigačné vlastnosti s hodnotou kolekcie. Pre vzťahy one-to-many a many-to-one má tabuľka jedna strana "One" navigačnú vlastnosť s hodnotou kolekcie. Nie je žiadny rozdiel v tom, ako pracujete s ktorýmkoľvek z týchto typov vzťahov pri používaní navigačných vlastností s hodnotou kolekcie. Táto časť popisuje, ako pracovať s navigačnými vlastnosťami s hodnotou kolekcie s akýmkoľvek typom vzťahu.

Pridanie záznamu do kolekcie

Nasledujúci príklad ukazuje, ako pridať záznam kontaktu do kolekcie obchodných vzťahovcontact_customer_accounts , ktorá je súčasťou vzťahu one-to-many.

Prosiť:

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)"
}

Odpoveď:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Nasledujúci príklad ukazuje, ako pridať záznam roly do kolekcie systemusersystemuserroles_association , čo je vzťah many-to-many.

Prosiť:

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)"
}

Odpoveď:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Odstránenie záznamu z kolekcie

Nasledujúci príklad ukazuje, ako odstrániť záznam kontaktu z kolekcie obchodného vzťahucontact_customer_accounts, kde je hodnota kontaktu contactid .00aa00aa-bb11-cc22-dd33-44ee44ee44ee

Prosiť:

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

Odpoveď:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Funguje aj nasledujúca požiadavka:

Prosiť:

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

Odpoveď:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Pozrite si tiež:

Ukážka základných operácií webového rozhrania API (C#)
Ukážka základných operácií webového rozhrania API (JavaScript na strane klienta)
Vykonávanie operácií pomocou webového rozhrania API
Vytváranie požiadaviek HTTP a spracovanie chýb
Dotazovanie údajov pomocou webového rozhrania API
Vytvorenie riadka tabuľky pomocou webového rozhrania API
Načítanie riadka tabuľky pomocou webového rozhrania API
Aktualizácia a odstránenie riadkov tabuľky pomocou webového rozhrania API
Používanie funkcií webového rozhrania API
Používanie akcií webového rozhrania API
Vykonávanie dávkových operácií pomocou webového rozhrania API
Zosobnenie iného používateľa pomocou webového rozhrania API
Vykonávanie podmienených operácií pomocou webového rozhrania API