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. 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_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.
Einem einzelnen Firmendatensatz können mithilfe der einwertigen Navigationseigenschaft mehrere Kontaktdatensätze parentcustomerid_accountzugeordnet 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.

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