Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie die Web-API, um Tabellenzeilen mit anderen Tabellenzeilen über die Beziehungen zu verknüpfen und die Verknüpfung aufzuheben, die zwischen den Tabellendefinitionen vorhanden sind. In OData werden die Beziehungen als Navigationseigenschaften ausgedrückt.
Sie können herausfinden, welche Navigationseigenschaften im $metadata-Dienstdokument vorhanden sind. Siehe Web API-Navigationseigenschaften. Informationen zu vorhandenen Dataverse-Tabellen finden Sie in der Web-API EntityType-Referenz. Informationen zu jedem Entitätstyp finden Sie in den aufgelisteten Einzelwert- und Sammlungswert-Navigationseigenschaften.
Die folgende Tabelle beschreibt die drei Typen von Beziehungen zwischen Tabellen in Dataverse.
| Type | Description | Example |
|---|---|---|
| Eine zu Vielen | Einem Datensatz können viele Datensätze zugeordnet sein. | Ein Firmendatensatz kann viele Kontaktdatensätze in der contact_customer_accountsNavigationseigenschaft mit Sammlungswert enthalten. |
| n:1 | Einem Datensatz können viele Datensätze zugeordnet sein. Eine N:1-Beziehung ist die Spiegelung der 1:N-Beziehung. Es gibt nur eine Beziehung. |
Mehrere Kontaktdatensätze können einem einzelnen Account-Datensatz mithilfe der parentcustomerid_accounteinzelwertigen Navigationseigenschaft zugeordnet werden. |
| Viele zu Viele | Vielen Datensätzen können viele Datensätze zugeordnet sein. | Jede Sicherheitsrolle (Rolle) kann Verweise auf die Definition eines Systembenutzers enthalten. Beide Tabellen verfügen über eine systemuserroles_associationauflistungswertige Navigationseigenschaft. |
Verwenden Sie einzelwertige Navigationseigenschaften
Für vorhandene Datensätze auf der n-Seite einer 1:n- oder n:1-Beziehung können Sie den Datensatz zuordnen, indem Sie einen URI-Verweis auf den anderen Datensatz festlegen. Die einfachste und am häufigsten verwendete Methode besteht darin, die @odata.bind Anmerkung an den Namen der einzelwertigen Navigationseigenschaft anzufügen und dann den Wert als URI auf den anderen Datensatz in einer PATCH Anforderung festzulegen.
Zuordnen mithilfe einer einzelwertigen Navigationseigenschaft
Wenn Sie beispielsweise einen Kontaktdatensatz einem Account-Datensatz zuordnen möchten, indem Sie die parentcustomerid_account Einzelwert-Navigationseigenschaft verwenden:
Anforderung:
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)"
}
Antwort:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Wie in " Tabellenzeilen verknüpfen" beim Erstellen beschrieben, können Sie auch neue Datensätze auf die gleiche Weise mit vorhandenen Datensätzen verknüpfen.
Die Zuordnung mithilfe einer einzelwertigen Navigationseigenschaft auflösen
Wenn Sie die Zuordnung aufheben möchten, legen Sie den Wert auf NULL fest.
Anforderung:
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
}
Antwort:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Wenn Sie die Zuordnung mithilfe dieser Methode aufheben, schließen Sie die @odata.bind Anmerkung nicht ein. Verwenden Sie den Namen der einzelwertigen Navigationseigenschaft:
Anforderung:
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
}
Antwort:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Weitere Informationen finden Sie unter Grundlegende Aktualisierung.
Zuordnen und Aufheben von Zuordnungen mithilfe von $ref-Anfragen
Sie können andere Methoden verwenden, um dieselben Ergebnisse zu erzielen, die zuvor mit einzelwertigen Navigationseigenschaften beschrieben wurden.
Verwenden Sie die folgende PUT Anforderung, um den Wert der parentcustomerid_account einzelwertigen Navigationseigenschaft festzulegen:
Anforderung:
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)"
}
Antwort:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Hinweis
Sie müssen eine absolute URL verwenden, wenn Sie den Wert für @odata.id festlegen.
Verwenden Sie diese DELETE Anforderung, um den Verweis zu entfernen:
Anforderung:
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
Antwort:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Verwenden Sie auflistungswertige Navigationseigenschaften
Mit OData verfügen beide Seiten einer m:n-Beziehung über auflistungswertige Navigationseigenschaften. Bei 1:n- und n:1-Beziehungen verfügt die Tabelle auf der 1-Seite über eine sammlungswertige Navigationseigenschaft. Es gibt keinen Unterschied bei der Arbeit mit einer dieser Beziehungstypen bei Verwendung von sammlungswertigen Navigationseigenschaften. In diesem Abschnitt wird beschrieben, wie Sie mit Eigenschaften für die Sammlungswertnavigation für jeden Beziehungstyp arbeiten.
Einen Datensatz zur Sammlung hinzufügen
Das folgende Beispiel zeigt, wie Sie eine einen Kontakt Datensatz zur Sammlung accountcontact_customer_accounts hinzufügen, die Teil einer 1:N-Beziehung ist.
Anforderung:
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)"
}
Antwort:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Das folgende Beispiel zeigt, wie Sie eine einen Rollen Datensatz zur Sammlung systemusersystemuserroles_association hinzufügen, die Teil einer N:N-Beziehung ist.
Anforderung:
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)"
}
Antwort:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Einen Datensatz aus einer Sammlung entfernen
Das folgende Beispiel zeigt, wie Sie einen Kontaktdatensatz aus der accountcontact_customer_accounts-Sammlung entfernen, bei der der Kontakt contactid-Wert 00aa00aa-bb11-cc22-dd33-44ee44ee44ee ist.
Anforderung:
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
Antwort:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Die folgende Anfrage funktioniert auch:
Anforderung:
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
Antwort:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Siehe auch
Beispiel grundlegender Web-API-Operationen (C#)
Beispiele grundlegender Web API-Operationen (clientseitiges JavaScript)
Vorgänge mit der Web-API ausführen
HTTP-Anforderungen verfassen und Fehler beheben
Datenabfrage mit Web-API
Erstellen einer Tabellenzeile mithilfe der Web-API
Abrufen einer Tabellenzeile über die Web-API
Aktualisieren und Löschen von Tabellenzeilen über die Web-API
Nutzen von Web-API-Funktionen
Web-API-Aktionen verwenden
Ausführen von Batchbetrieben mithilfe der Web-API
Einen anderen Benutzer mit der Web-API übernehmen
Bedingte Vorgänge mithilfe der Web-API ausführen