Freigeben über


Web API EntityTypes

Innerhalb des CSDL-$metadata Dokuments befindet sich unmittelbar unterhalb des Dienstnamespaces eine Liste von EntityTypes. Ein Entitätstyp ist ein benannter strukturierter Typ mit einem Schlüssel. Sie definiert die benannten Eigenschaften und Beziehungen einer Tabelle.

EntityType Elemente weisen in der Regel die folgenden Attribute auf:

Merkmal Description
Name Der Name des Typs; die LogicalName für die Tabelle.
BaseType Der EntityType, von dem der Typ erbt.

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>  

Mit Ausnahme von drei Ausnahmen weisen alle Entitätstypen die folgenden untergeordneten Elemente auf:

Element Description
Key Enthält ein <PropertyRef> Element, bei dem das Name Attribut den Primärschlüssel für die Tabelle darstellt.
Property Enthält Details zu einer Eigenschaft von 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 Entitätstypen, 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 Entitätstypen, die crmbaseentity Geschäftsdaten enthalten, davon 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, aber auch ein OData OpenType ist.

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

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

Weitere Informationen: Verwenden von offenen Typen mit benutzerdefinierten APIs

crmmodelbaseentity

Dieses Element ist im unteren Bereich des $metadata Dokuments vorhanden:

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

Dieses Element definiert einen allgemeinen abstrakten Typ für alle Schemadefinitionen. Es ist der Basistyp für eine andere abstrakte Basisklasse, die für Tabellendefinitionen verwendet wird. Es sei denn, Sie möchten Mithilfe der Web-API Tabellen, Spalten und Beziehungen erstellen und ändern, müssen Sie keine Entitätstypen verwenden, die von diesem Typ erben. Weitere 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 Description
principal systemuser und team Entitätstypen erben vom Entitätstyp principal . Prinzipal stellt nur die ownerid Eigenschaft bereit, über die jede benutzereigene Tabelle verfügt. Diese Vererbung ermöglicht, dass benutzereigene Datensätze entweder einem Benutzer oder einem Team zugewiesen werden.

Die ownerid Eigenschaft ist der Primärschlüssel sowohl für die systemuser- als auch für die team-EntityTypes.
activitypointer Jede Tabelle, die als Aktivität konfiguriert ist, erbt vom activitypointer Entitätstyp. Dieser Typ stellt allgemeine Eigenschaften bereit, die in Entitätstypen wie appointment, email, fax, letter, phonecall und task zu finden sind. Sie können auch eine benutzerdefinierte Tabelle erstellen, die eine Aktivität darstellt. Diese allgemeinen Eigenschaften ermöglichen das Abrufen einer Liste von Aktivitäten verschiedener Typen mithilfe dieser allgemeinen Eigenschaften

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

Beim Arbeiten mit Tabellendefinitionen gibt es eine weitere Vererbungshierarchie. Der MetadataBase-Entitätstyp erbt von der abstrakten crmmodelbaseentity, um allgemeine MetadataId- und HasChanged-Eigenschaften bereitzustellen. Weitere Informationen: Verwenden Sie die Web-API mit Tabellendefinitionen.

Alternativschlüssel

Wenn ein Entitätstyp alternative Schlüssel definiert hat, gibt es eine Annotation Beschreibung der Eigenschaften, die an der Alternativen Schlüsseldefinition beteiligt sind.

Das folgende Beispiel zeigt die Anmerkung, wenn die account Entität so konfiguriert wurde, dass die accountnumber Eigenschaft als alternativer Schlü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

Erfahren Sie mehr über Eigenschaften.

Siehe auch

Web-API-Typen und -Vorgänge
Web-API-Dienstdokumente
Web-API-Eigenschaften
Web-API-Navigationseigenschaften
Web-API-Aktionen
Web-API-Funktionen
Komplexe Web-API- und Enumerationstypen
Verwenden der Dataverse-Web-API