Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A táblasorok egyes rekordjait más rekordokkal is társíthatja a tábladefiníciók közötti kapcsolatok használatával. Az OData-ban a kapcsolatok navigációs tulajdonságokként vannak kifejezve.
Megtudhatja, hogy mely navigációs tulajdonságok találhatók a $metadata szolgáltatásdokumentumban. Lásd a webes API navigációs tulajdonságait. Meglévő Dataverse-táblák esetén tekintse meg a Webes API EntityType-referenciát
minden entitástípushoz tekintse meg a felsorolt egyértékű és gyűjteményértékű navigációs tulajdonságokat.
Az alábbi táblázat a Dataverse táblái közötti három kapcsolattípust ismerteti.
| Típus | Description | Example |
|---|---|---|
| Egy a többhöz | Egy rekordhoz számos rekord társítható. | A fiókrekordok számos partnerrekordot tartalmazhatnak a contact_customer_accountsgyűjtemény-értékű navigációs tulajdonságban. |
| Több-a-egyhez | Számos rekord társítható egy rekordhoz. A Több-az-egyhez kapcsolat az Egy-a-többhöz kapcsolatnak a tükörképe. Csak egy kapcsolat van. |
Az egyértékű navigációs tulajdonság használatával több parentcustomerid_account is társítható egyetlen fiókrekordhoz. |
| Több-a-többhöz | Számos rekord számos rekordhoz társítható. | Minden biztonsági szerepkör (szerepkör) tartalmazhat egy rendszerfelhasználó definíciójára mutató hivatkozásokat. Mindkét tábla systemuserroles_association használ. |
Egyértékű navigációs tulajdonságok használata
Az egy-a-sokhoz vagy sok-az-egyhez kapcsolat több oldalán lévő meglévő rekordok esetében társíthatja a rekordot egy Uri-hivatkozás beállításával a másik rekordhoz. Ennek legegyszerűbb és leggyakoribb módja, ha hozzáfűzi a @odata.bind széljegyzetet az egyértékű navigációs tulajdonság nevéhez, majd Uri-ként állítja be az értéket egy PATCH kérés másik rekordjához.
Társítás egy egyértékű navigációs tulajdonsággal
Ha például egy partnerrekordot egy fiókrekordhoz szeretne társítani az parentcustomerid_account egyértékű navigációs tulajdonság használatával:
Kérés:
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)"
}
Válasz:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
A Létrehozás táblasorainak társítása című cikkben leírtak szerint az új rekordokat ugyanúgy társíthatja a meglévő rekordokkal is.
Egyértékű navigációs tulajdonság használatával szüntesse meg a társítást.
A társítás megszüntetése érdekében állítsa az értéket null értékre.
Kérés:
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
}
Válasz:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Ha ezzel a módszerrel szünteti meg a társítást, ne vegye fel a @odata.bind jelölést. Használja az egyértékű navigációs tulajdonság nevét:
Kérés:
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
}
Válasz:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
További információ: Alapszintű frissítés
Egyéb módszerek
Más módszerekkel is elérheti az egyértékű navigációs tulajdonságokkal korábban ismertetett eredményeket.
Az egyértékű navigációs tulajdonság értékének beállításához használja a következő PUT kérést: parentcustomerid_account
Kérés:
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)"
}
Válasz:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Megjegyzés:
Az érték beállításakor abszolút URL-címet @odata.idkell használnia.
A hivatkozás eltávolításához használja a következő kérést DELETE :
Kérés:
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
Válasz:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Gyűjteményértékű navigációs tulajdonságok használata
Az OData használatával a több-a-többhöz kapcsolat mindkét oldalán gyűjteményértékű navigációs jellemzők találhatók. Az egy-a-többhöz és a több-az-egyhez kapcsolatok esetében az Egy oldalon lévő táblának van egy gyűjteményértékű navigációs tulajdonsága. Az ilyen típusú kapcsolatok használata nem különbözik a gyűjteményértékű navigációs tulajdonságok használatától. Ez a szakasz azt ismerteti, hogyan használható gyűjteményértékű navigációs tulajdonságok bármilyen típusú kapcsolathoz.
Rekord hozzáadása gyűjteményhez
Az alábbi példa bemutatja, hogyan vehet fel egy partnerrekordot a fiókgyűjteménybecontact_customer_accounts, amely egy egy-a-többhöz kapcsolat része.
Kérés:
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)"
}
Válasz:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Az alábbi példa bemutatja, hogyan adhat hozzá szerepkörrekordot a systemusersystemuserroles_association-gyűjteményhez, amely egy több-a-többhöz kapcsolat.
Kérés:
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)"
}
Válasz:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Rekord eltávolítása gyűjteményből
Az alábbi példa bemutatja, hogyan távolíthat el egy partnerrekordot a fiókgyűjteménybőlcontact_customer_accounts, ahol a kapcsolattartó contactid értéke 00aa00aa-bb11-cc22-dd33-44ee44ee44ee.
Kérés:
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
Válasz:
HTTP/1.1 204 NoContent
OData-Version: 4.0
A következő kérés is működik:
Kérés:
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
Válasz:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Lásd még
Webes API alapműveleti minta (C#)
Webes API alapműveleti minta (ügyféloldali JavaScript)
Műveletek végrehajtása a webes API segítségével
Http-kérések írása és hibák kezelése
Adatok lekérdezése webes API-val
Táblasor létrehozása a webes API-val
Táblázatsor lekérése a Webes API használatával
Táblasorok frissítése és törlése a Webes API használatával
Webes API-függvények használata
Web API-műveletek használata
Kötegelt műveletek végrehajtása a Webes API használatával
Másik felhasználó megszemélyesítése a Webes API használatával
Feltételes műveletek végrehajtása a Webes API használatával