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. Pre existujúce tabuľky Dataverse pozri Web API EntityType Reference

, pre každý typ entity pozri uvedené navigačné vlastnosti s jednou hodnotou a kolekciou.

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

Napríklad na priradenie kontaktného záznamu k záznamu účtu 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 riadkoch Associate tabuľky pri vytváraní, môžete tiež priradiť nové záznamy k existujúcim záznamom rovnakým spôsobom.

Rozpojenie použitím navigačnej vlastnosti s jednou hodnotou

Na disociáciu nastavte 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)

Keď sa touto metódou odpojíte, nezahrňte @odata.bind anotáciu. Použite názov navigačnej vlastnosti 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

Môžete použiť iné metódy na dosiahnutie rovnakých výsledkov opísaných predtým s jednohodnotovými navigačnými vlastnosťami.

Použite nasledujúcu PUT požiadavku na nastavenie hodnoty parentcustomerid_account navigačnej vlastnosti s jednou hodnotou:

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

Pri nastavovaní hodnoty pre @odata.idmusíte použiť absolútnu URL adresu .

Na odstránenie odkazu použite 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 jeden ku mnohým a mnoho-ku jednému má tabuľka na strane 'Jedna' navigačnú vlastnosť hodnotou kolekcie. Nie je žiadny rozdiel v tom, ako pracujete s týmito typmi vzťahov pri používaní navigačných vlastností s hodnotou kolekcie. Táto sekcia popisuje, ako pracovať s navigačnými vlastnosťami hodnotami kolekcie pre akýkoľvek typ 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