Zuordnen und Aufheben der Zuordnung von Tabellenzeilen über die Web-API
Sie können einzelne Datensätze in Tabellenzeilen mit anderen Datensätzen verknüpfen, indem Sie Beziehungen verwenden, 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. Vorhandene Dataverse Tabellen finden Sie in der Web-API-EntityType-Referenz. Für jeden Entitätstyp finden Sie die aufgelisteten einwertigen und sammlungswertigen Navigationseigenschaften.
Die folgende Tabelle beschreibt die drei Typen von Beziehungen zwischen Tabellen in Dataverse.
Type | Beschreibung des Dataflows | Beispiel |
---|---|---|
Eine zu Vielen | Einem Datensatz können viele Datensätze zugeordnet sein. | Ein Firmendatensatz kann viele Kontaktdatensätze in der contact_customer_accounts Navigationseigenschaft 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. |
Einem einzelnen Firmendatensatz können mithilfe der einwertigen Navigationseigenschaft mehrere Kontaktdatensätze parentcustomerid_account 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_association auflistungswertige Navigationseigenschaft. |
Einzelwertige Navigationseigenschaften verwenden
Für vorhandene Aufzeichnungen auf der viele Seite einer 1:n- oder n:1-Beziehung können Sie den Datensatz zuordnen, indem Sie einen Uri-Verweis auf den anderen Datensatz setzen. Die einfachste und gebräuchlichste Methode hierfür besteht darin, die @odata.bind
Anmerkung an den Namen der einwertigen Navigationseigenschaft anzufügen und dann den Wert als URI für den anderen Datensatz in einer PATCH
Anforderung festzulegen.
Mit einer einzelwertigen Partner-Navigationseigenschaft verknüpfen
So ordnen Sie beispielsweise einen Kontaktdatensatz mithilfe der einwertigen Navigationseigenschaft einer Firma parentcustomerid_account
zu:
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 beschrieben in Tabellenzeilen beim Erstellen zuordnen, können auf die gleiche Weise auch neue Datensätze mit bestehenden Datensätzen verknüpft werden.
Zuordnung mit einer einzelwertigen Partner-Navigationseigenschaft aufheben
Wenn Sie die Zuordnung aufheben möchten, können Sie den Wert einfach auf null setzen.
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 sich auf diese Weise trennen, müssen Sie die nicht die @odata.bind
-Anmerkung einbeziehen. Oder Sie verwenden einfach den Namen der einwertigen 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: Basisches Update
Weitere Methoden
Es gibt andere Möglichkeiten, die gleichen Ergebnisse zu erzielen, die zuvor mit einwertigen Navigationseigenschaften beschrieben wurden.
Sie können die folgende PUT
-Anfrage verwenden, 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
Anmerkung
Hinweis: Sie müssen eine absolute URL verwenden, wenn Sie den Wert für @odata.id
festlegen.
Um den Verweis zu entfernen, können Sie auch diese DELETE
-Anfrage verwenden:
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
Sammlungswertige Navigationseigenschaften verwenden
Mit OData verfügen beide Seiten einer m:n-Beziehung über auflistungswertige Navigationseigenschaften. Für diese 1:N- und N:1-Beziehungen hat die Tabelle auf der „1“-Seite eine sammlungsbewertete Navigationseigenschaft. Es macht keinen Unterschied, wie Sie mit diesen Beziehungstypen arbeiten, wenn Sie sammlungsbewertete Navigationseigenschaften verwenden. In diesem Abschnitt wird beschrieben, wie Sie mit sammlungsbewerteten Navigationseigenschaften mit beliebigen Beziehungstypen 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 Kontakt-Datensatz aus der Sammlung accountcontact_customer_accounts
entfernt wird, wo der Wert contactid
des Kontakts 00aa00aa-bb11-cc22-dd33-44ee44ee44ee
lautet.
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 mithilfe der Web-API ausführen
HTTP-Anforderungen verfassen und Fehler beheben
Datenabfrage mit Web-API
Erstellen einer Tabellenzeile über die 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
Annehmen eines anderen Benutzerkontos mit Web API
Bedingte Vorgänge mithilfe der Web-API ausführen