Freigeben über


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. Informationen zu vorhandenen Dataverse Tabellen finden Sie in der Web API EntityType Reference. Informationen zu den einzelnen Entitätstypen finden Sie in den 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 account-Datensatz kann viele contact-Datensätze haben in der contact_customer_accounts sammlungswertige Navigationseigenschaft.
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.
Viele contact-Datensätze können mit einem einzigen account-Datensatz verknüpft sein unter Verwendung der parentcustomerid_account einzelwertigen Navigationseigenschaft.
Viele zu Viele Vielen Datensätzen können viele Datensätze zugeordnet sein. Jedes security role (role) kann Verweise auf die Definition von a enthalten systemuser.
Beide dieser Tabellen verfügen über eine systemuserroles_association sammlungswertige 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 Möglichkeit hierfür besteht darin, @odata.bind Anmerkungen an den Namen der einwertigen Navigationseigenschaft anzuhängen und den Wert dann in einer PATCH Anforderung als URI für den anderen Datensatz festzulegen.

Mit einer einzelwertigen Partner-Navigationseigenschaft verknüpfen

Um zum Beispiel einen contact-Datensatz einem account hinzuzufügen unter Verwendung der parentcustomerid_account einzelwertigen Navigationseigenschaft:

Anforderung:

PATCH [Organization Uri]/api/data/v9.2/contacts(cf9eaaef-f718-ed11-b83e-00224837179f) 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(cf9eaaef-f718-ed11-b83e-00224837179f)

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(cf9eaaef-f718-ed11-b83e-00224837179f) 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(cf9eaaef-f718-ed11-b83e-00224837179f)

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(cf9eaaef-f718-ed11-b83e-00224837179f) 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(cf9eaaef-f718-ed11-b83e-00224837179f)

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(cf9eaaef-f718-ed11-b83e-00224837179f)/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

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(cf9eaaef-f718-ed11-b83e-00224837179f)/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

Bei OData verfügen beide Seiten einer Viele-zu-viele-Beziehung über sammlungswertige Navigationseigenschaften. Für Eins-zu-viele und Viele-zu-eins Beziehungen hat die Tabelle auf der „Eins“-Seite eine sammlungswertige Navigationseigenschaft. Es macht keinen Unterschied, wie Sie mit diesen Typen von Beziehungen arbeiten, wenn Sie sammlungswertige Navigationseigenschaften verwenden. In diesem Abschnitt wird die Arbeit mit sammlungswertigen Navigationseigenschaften mit beliebigen Beziehungstypen beschrieben.

Einen Datensatz zur Sammlung hinzufügen

Das folgende Beispiel zeigt, wie ein contact Datensatz zur account contact_customer_accounts Sammlung hinzugefügt wird, die Teil einer Eins-zu-viele-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(cf9eaaef-f718-ed11-b83e-00224837179f)"
}

Antwort:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Das folgende Beispiel zeigt, wie ein role Datensatz zur systemuser systemuserroles_association Sammlung hinzugefügt wird, bei der es sich um eine Viele-zu-viele-Beziehung handelt.

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 contact-Datensatz auf der account contact_customer_accounts-Sammlung entfernen, wo der Kontakt contactid-Wert cf9eaaef-f718-ed11-b83e-00224837179f ist.

Anforderung:

DELETE [Organization Uri]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)/contact_customer_accounts(cf9eaaef-f718-ed11-b83e-00224837179f)/$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(cf9eaaef-f718-ed11-b83e-00224837179f) 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
Abfragen von Daten mithilfe der 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

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).