Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Jednotlivé záznamy v řádcích tabulky můžete přidružit k jiným záznamům pomocí relací, které existují mezi definicemi tabulky. V OData jsou relace vyjádřeny jako navigační vlastnosti.
V dokumentu služby $metadata můžete zjistit, které vlastnosti navigace existují. Viz Vlastnosti navigace webového rozhraní API. Informace o existujících tabulkách Dataverse viz Reference Web API EntityType. Pro každý typ entity najdete seznam vlastností navigace s jednou hodnotou a kolekcí.
Následující tabulka popisuje tři typy relací mezi tabulkami v Dataverse.
| Typ | Description | Example |
|---|---|---|
| Jedna ku mnoha | Jeden záznam může mít přidružených mnoho záznamů. | Záznam obchodní vztah může mít mnoho záznamů kontakt ve contact_customer_accountsvlastnosti navigace collection-valued. |
| Mnoho k jednomu | K jednomu záznamu je možné přidružit mnoho záznamů. Vztahy N : 1 je zrcadlový obraz vztahu 1:N. Je tu jen jeden vztah. |
K jednomu záznamu účtu lze přidružit více záznamů kontaktů pomocí parentcustomerid_accountvlastnosti navigace s jednou hodnotou. |
| N:N | Mnoho záznamů může být přidruženo k mnoha záznamům. | Každá role zabezpečení (role) může obsahovat odkazy na definici systémového uživatele. Obě tyto tabulky mají systemuserroles_associationvlastnost navigace s hodnotou kolekce. |
Použití jednohodnotových navigačních vlastností
U existujících záznamů na straně mnoho v relaci 1:N nebo N:1 můžete záznam propojit nastavením odkazu URI na druhý záznam. Nejjednodušší a nejběžnější způsob, jak toho dosáhnout, je připojit poznámku @odata.bind k názvu jednohodnotové navigační vlastnosti a poté nastavit hodnotu jako URI na jiný záznam v požadavku PATCH.
Přidružení k vlastnosti navigace s jednou hodnotou
Pokud chcete například přidružit záznam kontaktu k účtu pomocí parentcustomerid_account vlastnosti navigace s jednou hodnotou:
Prosba:
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)"
}
Odpověď:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Jak je popsáno v části Přidružit řádky tabulky při vytváření, lze nové záznamy přidružit ke stávajícím záznamům stejným způsobem.
Zrušení přidružení k vlastnosti navigace s jednou hodnotou
Pokud chcete zrušit přidružení, můžete jednoduše nastavit hodnotu null.
Prosba:
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
}
Odpověď:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Při oddělování tímto způsobem nemusíte zahrnout anotaci @odata.bind. Jednoduše můžete použít název jednohodnotové navigační vlastnosti:
Prosba:
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
}
Odpověď:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Další informace: Základní aktualizace
Jiné metody
Existují další způsoby, jak dosáhnout stejných výsledků popsaných dříve s vlastnostmi navigace s jednou hodnotou.
K nastavení hodnoty PUT jednohodnotové navigační vlastnosti můžete použít následující parentcustomerid_account požadavek:
Prosba:
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)"
}
Odpověď:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Poznámka:
Poznámka: Musíte použít absolutní URL při nastavování hodnoty pro @odata.id.
Pokud chcete odkaz odebrat, můžete použít také tento DELETE požadavek:
Prosba:
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
Odpověď:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Použití vlastností navigace s hodnotou kolekce
U OData mají obě strany vztahu N:N vlastnosti navigace s hodnotou kolekce. U vztahů 1:N a N:1 má tabulka na straně 'One' navigační vlastnost navigace ve formě kolekce. Při používání kolekčně hodnotových navigačních vlastností není žádný rozdíl v tom, jak pracujete s libovolným z těchto typů relací. Tato část popisuje, jak pracovat s vlastnostmi navigace s hodnotami kolekce s libovolným typem vztahu.
Přidání záznamu do kolekce
Následující příklad ukazuje, jak přidat záznam kontaktu do kolekce obchodní vztahcontact_customer_accounts, která je součástí vztahu 1:N.
Prosba:
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)"
}
Odpověď:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Následující příklad ukazuje, jak přidat záznam role do kolekce systemusersystemuserroles_association , což je relace M:N.
Prosba:
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)"
}
Odpověď:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Odebrání záznamu z kolekce
Následující příklad ukazuje, jak odebrat záznam kontaktu z kolekce účtůcontact_customer_accounts, kde hodnota kontaktu je contactid00aa00aa-bb11-cc22-dd33-44ee44ee44ee.
Prosba:
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
Odpověď:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Funguje také následující požadavek:
Prosba:
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
Odpověď:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Viz také
Ukázka základního provozu webového rozhraní API (C#)
Ukázka základního provozu webového rozhraní API (JavaScript na straně klienta)
Provádění operací pomocí webového rozhraní API
Vytváření požadavků HTTP a zpracování chyb
Dotazování na data pomocí webového rozhraní API
Vytvoření řádku tabulky pomocí webového rozhraní API
Načtení řádku tabulky pomocí webového rozhraní API
Aktualizace a odstranění řádků tabulky pomocí webového rozhraní API
Použití funkcí webového rozhraní API
Použít akce webového rozhraní API
Spouštění dávkových operací pomocí webového rozhraní API
Zosobnění jiného uživatele pomocí webového rozhraní API
Provádění podmíněných operací pomocí webového rozhraní API