Megosztás:


Táblasorok társítása és leválasztása a Web API használatával

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