EntityTypes de l’API web

Au sein du document de $métadonnées CSDL, juste en dessous de l’espace de noms de service, vous trouverez une liste des EntityTypes. Un type d’entité est un type structuré nommé avec une clé. Il définit les propriétés et les relations nommées d’une table.

Les éléments EntityType ont généralement les attributs suivants :

Attribute Description
Name Le nom du type ; le LogicalName pour la table.
BaseType Il s’agit de l’EntityType dont le type d’entité hérite.

Par exemple, c’est l’élément XML EntityType pour l’entité account, à l’exclusion des propriétés et des propriétés de navigation.

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

À trois exceptions près, tous les types d’entités auront les éléments enfants suivants :

Élément Description
Key Contient un élément <PropertyRef> où l’attribut Name représente la clé primaire de la table.
Property Contient des détails sur une propriété d’EntityType. Voir Propriétés de l’API web.
NavigationProperty Contient des détails sur une relation avec cet EntityType. Voir Propriétés de navigation de l’API web

Types d’entités spéciales

Il existe trois types d’entités qui n’ont pas d’élément Key, Property ou NavigationProperty.

crmbaseentity

Cet élément définit un type abstrait commun pour toute table contenant des données commerciales.

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

Étant donné que tous les types d’entités contenant des données commerciales héritent de crmbaseentity, vous trouverez crmbaseentity référencé lorsqu’une valeur n’est pas spécifique à une table.

expando

Cet élément définit un type d’entité qui hérite de crmbaseentity, mais est aussi un OData OpenType .

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

Un type d’entité expando peut être utilisé comme paramètre d’une action ou comme propriété de réponse d’une fonction ou d’une action.

Plus d’informations : Utiliser des types ouverts avec des API personnalisées

crmmodelbaseentity

Cet élément existe à proximité du bas du document de $métadonnées, vous trouverez cet élément :

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

Cet élément définit un type abstrait commun pour toutes les définitions de schéma. C’est le type de base d’une autre classe de base abstraite utilisée pour les définitions de table. À moins que vous ne souhaitiez créer et modifier des tables, des colonnes et relations à l’aide de l’API web, vous n’aurez pas besoin d’utiliser des types d’entités qui héritent de ce type. Pour plus d’informations : Utiliser l’API web avec les définitions de table.

Héritage EntityType

Pour les données commerciales, vous trouverez deux autres types d’entités abstraites qui héritent de crmbaseentity :

EntityType Description
principal Les types d’entité systemuser et team héritent du type d’entité principal. Le principal ne fournit que la propriété ownerid, que possède chaque table appartenant à l’utilisateur. C’est ce qui permet aux enregistrements appartenant à l’utilisateur d’être attribués à un utilisateur ou à une équipe.

La propriété ownerid est la clé primaire pour les deux EntityTypes systemuser et team.
activitypointer Toute table configurée en tant qu’activité héritera du type d’entité activitypointer. Ce type fournit des propriétés communes trouvées dans les types d’entité tels que : appointment, email, fax, letter, phonecall et task. Vous pouvez également créer une table personnalisée qui représente une activité. Ces propriétés communes permettent de récupérer une liste d’activités de différents types à l’aide de ces propriétés communes

La propriété activityid est la clé primaire pour tous les types d’entités qui héritent de activitypointer.

Lorsque vous travaillez avec des définitions de table, il existe une autre hiérarchie d’héritage. Le type d’entité MetadataBase hérite de la description crmmodelbaseentity pour fournir des propriétés MetadataId et HasChanged. Pour plus d’informations : Utiliser l’API web avec les définitions de table.

Clés secondaires

Lorsqu’un type d’entité a des clés alternatives définies, vous trouverez une Annotation qui décrit les propriétés impliquées dans la définition clé secondaire.

L’exemple suivant montre l’annotation lorsque l’entité account a été configurée pour activer la propriété accountnumber en tant que clé secondaire.

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

Plus d’informations : Récupérer un enregistrement utilisant une clé secondaire

Étapes suivantes

En savoir plus sur les propriétés.

Voir aussi

Types d’API web et opérations
Documents de service de l’API web
Propriétés de l’API web
Propriétés de navigation de l’API web
Actions de l’API web
Fonctions de l’API web
Types Complex et Enumeration de l’API web
Utilisation de l’API web Dataverse

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).