Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
U kunt afzonderlijke records in tabelrijen koppelen aan andere records met behulp van relaties die bestaan tussen de tabeldefinities. In OData worden de relaties uitgedrukt als navigatie-eigenschappen.
U kunt ontdekken welke navigatie-eigenschappen aanwezig zijn in het $metadata servicedocument. Zie eigenschappen voor web-API-navigatie. Zie voor bestaande Dataverse-tabellen de Web API EntityType naslaginformatie; per entiteitstype, zie de vermelde navigatie-eigenschappen met een enkele waarde en verzamelingwaarde.
In de volgende tabel worden de drie typen relaties tussen tabellen in Dataverse beschreven.
| Typologie | Description | Example |
|---|---|---|
| Een-op-veel | Aan één record kunnen veel records zijn gekoppeld. | Een account-record kan veel records voor contactpersonen bevatten in de contact_customer_accountsnavigatie-eigenschap met een verzamelingswaarde. |
| Veel-op-een | Veel records kunnen aan één record worden gekoppeld. Veel-op-een is de gespiegelde afbeelding van een een-op-veel-relatie. Er is maar één relatie. |
Meerdere records voor contactpersonen kunnen worden gekoppeld aan één accountrecord met behulp van de parentcustomerid_accountnavigatie-eigenschap met één waarde. |
| Veel op veel | Veel records kunnen worden gekoppeld aan veel records. | Elke beveiligingsrol (rol) kan verwijzingen bevatten naar de definitie van een systemuser. Beide tabellen hebben een systemuserroles_associationnavigatie-eigenschap met een verzamelingswaarde. |
Navigatie-eigenschappen met één waarde gebruiken
Voor bestaande records aan de veel-zijde van een één-op-veel of veel-op-één-relatie kunt u het record koppelen door een URI-referentie naar het andere record te definiëren. De eenvoudigste en meest voorkomende manier om dit te doen, is door de @odata.bind aantekening toe te voegen aan de naam van de navigatie-eigenschap met één waarde en vervolgens de waarde in te stellen als de URI op de andere record in een PATCH aanvraag.
Koppelen aan een navigatie-eigenschap met één waarde
Als u bijvoorbeeld een record van een contactpersoon aan een account wilt koppelen met behulp van de parentcustomerid_account navigatie-eigenschap met één waarde:
Verzoek:
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)"
}
Antwoord:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Zoals beschreven in Tabelrijen koppelen bij maken, kunnen nieuwe records ook op dezelfde manier worden gekoppeld aan bestaande records.
Loskoppelen van een navigatie-eigenschap met één waarde
Als u de koppeling wilt loskoppelen, kunt u de waarde eenvoudig instellen op null.
Verzoek:
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
}
Antwoord:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Wanneer u op deze manier loskoppelt, hoeft u de @odata.bind notatie niet op te nemen. U kunt gewoon de naam van de navigatie-eigenschap met één waarde gebruiken:
Verzoek:
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
}
Antwoord:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Meer informatie: Basisupdate
Andere methoden
Er zijn andere manieren om dezelfde resultaten te bereiken die eerder zijn beschreven met navigatie-eigenschappen met één waarde.
U kunt de volgende PUT aanvraag gebruiken om de waarde van de parentcustomerid_account navigatie-eigenschap met één waarde in te stellen:
Verzoek:
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)"
}
Antwoord:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Opmerking
Opmerking: u moet een absolute URL gebruiken bij het instellen van de waarde voor @odata.id.
Als u de verwijzing wilt verwijderen, kunt u deze DELETE aanvraag ook gebruiken:
Verzoek:
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
Antwoord:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Navigatie-eigenschappen met verzamelingswaarde gebruiken
Met OData hebben beide zijden van een veel-op-veel-relatie navigatie-eigenschappen met verzamelingswaarden. Voor één-op-veel- en veel-op-één-relaties heeft de tabel aan de 'Een'-zijde een collectie-gewaarde navigatie-eigenschap. Er is geen verschil hoe u met een van deze typen relaties werkt terwijl u navigatie-eigenschappen met een verzamelingswaarde gebruikt. In deze sectie wordt beschreven hoe u kunt werken met navigatie-eigenschappen met verzamelingswaarden met elk type relatie.
Een record toevoegen aan een verzameling
In het volgende voorbeeld ziet u hoe u een contactrecord toevoegt aan de accountcontact_customer_accounts-verzameling die deel uitmaakt van een één-op-veel-relatie.
Verzoek:
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)"
}
Antwoord:
HTTP/1.1 204 NoContent
OData-Version: 4.0
In het volgende voorbeeld ziet u hoe u een record rol toevoegt aan de systemusersystemuserroles_association-verzameling. Dit is een veel-op-veel-relatie.
Verzoek:
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)"
}
Antwoord:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Een record uit een verzameling verwijderen
In het volgende voorbeeld ziet u hoe u een record van een contactpersoon uit de accountverzamelingcontact_customer_accounts verwijdert wanneer de contactwaarde contactid gelijk is aan 00aa00aa-bb11-cc22-dd33-44ee44ee44ee.
Verzoek:
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
Antwoord:
HTTP/1.1 204 NoContent
OData-Version: 4.0
De volgende aanvraag werkt ook:
Verzoek:
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
Antwoord:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Zie ook
Web-API Basic Operations Sample (C#)
Web-API Basic Operations Sample (JavaScript aan clientzijde)
Bewerkingen uitvoeren met de web-API
Http-aanvragen opstellen en fouten afhandelen
Query's uitvoeren op gegevens met behulp van de web-API
Een tabelrij maken met behulp van de web-API
Een tabelrij ophalen met behulp van de web-API
Tabelrijen bijwerken en verwijderen met behulp van de web-API
Web-API-functies gebruiken
Web-API-acties gebruiken
Batchbewerkingen uitvoeren met behulp van de web-API
Een andere gebruiker imiteren met behulp van de web-API
Voorwaardelijke bewerkingen uitvoeren met behulp van de web-API