Web API EntityTypes

Innerhalb des CSDL $metadata Dokuments, direkt unter dem Service Namensraum gibt es eine Liste von EntityTypes. Ein Entitätstyp ist ein benannter strukturierter Typ von einen Schlüssel. Sie definieren die benannten Eigenschaften und Beziehungen einer Tabelle.

EntityType-Elemente haben normalweise die folgenden Attribute:

Attribute Beschreibung
Name Der Name des Typs; die LogicalName für die Tabelle.
BaseType Der Entitätstyp, von dem der Typ übernommen wird.

Dieses XML-Element ist zum Beispiel die EntityType für die Entität account, ohne Eigenschaften und Navigationseigenschaften.

<EntityType Name="account" BaseType="mscrm.crmbaseentity">  
  <Key>  
    <PropertyRef Name="accountid" />  <!--The name of the primary key --> 
  </Key>  
  <!--Properties and navigation properties removed for brevity-->  
  <Annotation Term="Org.OData.Core.V1.Description" String="Business that represents a customer or potential customer. The company that is billed in business transactions." />  
</EntityType>  

Bis auf drei Ausnahmen haben alle Typen von Entitäten die folgenden untergeordneten Elemente:

Element Beschreibung
Key Enthält ein <PropertyRef>-Element, bei dem das Name-Attribut für den Primärschlüssel für die Tabelle steht.
Property Enthält Details zu einer Eigenschaft des EntityType. Siehe Web API-Eigenschaften.
NavigationProperty Enthält Details zu einer Beziehung mit diesem EntityType. Siehe Web API-Navigationseigenschaften

Spezielle Entitätstypen

Es gibt drei Typen von Entitäten, die keine Key, Property oder NavigationProperty Elemente haben.

crmbaseentity

Dieses Element definiert einen allgemeinen abstrakten Typ für jede Tabelle, die Geschäftsdaten enthält.

<EntityType Name="crmbaseentity" Abstract="true" />

Da alle Typen von Entitäten, die Geschäftsdaten enthalten, von crmbaseentity erben, wird auf crmbaseentity verwiesen, wenn ein Wert nicht spezifisch für eine Tabelle ist.

expando

Dieses Element definiert einen Entitätstyp, der von crmbaseentity erbt, ist aber auch ein OData OpenType.

<EntityType Name="expando" BaseType="mscrm.crmbaseentity" OpenType="true" />

Ein expando-Entitätstyp kann als Parameter für eine Aktion oder als Antworteigenschaft einer Funktion oder Aktion verwendet werden.

Weitere Informationen: Verwenden von offenen Typen mit Custom-APIs

crmmodelbaseentity

Dieses Element befindet sich am Ende des Dokuments $metadata:

<EntityType Name="crmmodelbaseentity" Abstract="true" />

Dieses Element definiert einen gemeinsamen abstrakten Typ für beliebige Schemadefinitionen. Es ist der Basistyp für eine andere abstrakte Basisklasse, die für Tabellendefinitionen verwendet wird. Sofern Sie nicht mit Hilfe von Web-API Tabellen, Spalten und Beziehungen erstellen und ändern wollen, brauchen Sie keine Entitätstypen zu verwenden, die von diesem Typ erben. Mehr Informationen: Verwenden Sie die Web-API mit Tabellendefinitionen.

EntityType-Vererbung

Für Geschäftsdaten gibt es zwei weitere abstrakte Typen von Entitäten, die von crmbaseentity erben:

EntityType Beschreibung
principal systemuser- und team-Entitäten erben vom Entitätstyp principal. Principal stellt nur die Eigenschaft ownerid bereit, die in jeder benutzereigenen Tabelle enthalten ist. Diese Vererbung lässt es zu, dass Datensätze, die einem Benutzer gehören, entweder einem Benutzer oder einem Team zugeordnet werden.

Die Eigenschaft ownerid ist der Primärschlüssel für die Entitätstypen systemuser und team.
activitypointer Jede Tabelle, die als Aktivität konfiguriert ist, erbt vom Typ activitypointer der Entität. Dieser Typ stellt allgemeine Eigenschaften bereit, die sich in Entitätstypen befinden, wie z. B. appointment, email, fax, letter, phonecall und task. Sie können auch eine benutzerdefinierte Tabelle erstellen, die eine Aktivität darstellt. Diese gemeinsamen Eigenschaften ermöglichen es, eine Liste von Aktivitäten verschiedener Typen abzurufen

Die Eigenschaft activityid ist der Primärschlüssel für alle Entitätstypen, die von activitypointer erben.

Beim Arbeiten mit Tabellendefinitionen gibt es eine andere Vererbungshierarchie. Der Entitätstyp MetadataBase erbt von der abstrakten crmmodelbaseentity und stellt gemeinsame MetadataId- und HasChanged-Eigenschaften bereit. Mehr Informationen: Verwenden Sie die Web-API mit Tabellendefinitionen.

Alternativschlüssel

Wenn für einen Entitätstyp alternative Schlüssel definiert sind, gibt es eine Annotation, die die Eigenschaften beschreibt, die an der Definition des alternativen Schlüssels beteiligt sind.

Das folgende Beispiel zeigt die Anmerkung, wenn die account-Entität so konfiguriert wurde, dass die Eigenschaft accountnumber als Alternativschlüssel aktiviert wird.

<Annotation Term="OData.Community.Keys.V1.AlternateKeys">
    <Collection>
        <Record Type="OData.Community.Keys.V1.AlternateKey">
            <PropertyValue Property="Key">
                <Collection>
                    <Record Type="OData.Community.Keys.V1.PropertyRef">
                        <PropertyValue Property="Alias" String="accountnumber" />
                        <PropertyValue Property="Name" PropertyPath="accountnumber" />
                    </Record>
                </Collection>
            </PropertyValue>
        </Record>
    </Collection>
</Annotation>

Weitere Informationen: Datensatz unter Verwendung eines alternativen Schlüssels abrufen

Nächste Schritte,

Weitere Informationen zu Eigenschaften.

Siehe auch

Internet API-Typen und -Vorgänge
Web API-Servicedokumente
Web API-Eigenschaften
Navigationseigenschaften der Web API
Web API-Aktionen
Web API-Funktionen
Komplexe Typen und Enumerationstypen (Web API)
Dataverse-Web API verwenden

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).