Compartir a través de


EntityTypes de la API web

En el documento $metadata de CSDL, inmediatamente debajo del espacio de nombres de servicio hay una lista de EntityTypes. Un tipo de entidad es un tipo estructurado con nombre con una clave. Define las propiedades y las relaciones con nombre de una tabla.

Los elementos EntityType suelen tener los atributos siguientes:

Attribute Descripción
Name El nombre del tipo, el LogicalName de la tabla.
BaseType El EntityType del que se hereda el tipo de entidad.

Por ejemplo, este es el elemento XML es el EntityType para la entidad account, excluyendo propiedades y propiedades de navegación.

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

Excepto por tres excepciones, todos los tipos de entidades tienen los siguientes elementos secundarios:

Elemento Descripción
Key Contiene un elemento <PropertyRef> donde el atributo Name representa la clave principal de la tabla.
Property Contiene detalles sobre una propiedad de EntityType. Consulte Propiedades de API web.
NavigationProperty Contiene detalles sobre una relación con este EntityType. Consulte Propiedades de navegación de la API web

Tipos de entidad especiales

Hay tres tipos de entidades que no tienen los elementos Key, Property o NavigationProperty.

crmbaseentity

Este elemento define un tipo abstracto común para cualquier tabla que contieen datos comerciales.

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

Debido a que todos los tipos de entidad que contienen datos comerciales heredan de crmbaseentity, crmbaseentity es referenciado cuando un valor no es específico de una tabla.

expando

Este elemento define un tipo de entidad que hereda de crmbaseentity, pero también es un OpenType de OData.

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

Un tipo de entidad expando se puede utilizar como parámetro para una acción o como propiedad de respuesta desde una función o acción.

Más información: Usar tipos abiertos con API personalizadas

crmmodelbaseentity

Este elemento existe cderca de la parte inferior del documento $metadata:

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

Este elemento define un tipo abstracto común para cualquier definición de esquema. Es el tipo básico para otra clase básica abstracta utilizada para definiciones de tablas. A menos que desee crear y modificar tablas, columnas y relaciones usando la API web, no necesitará usar tipos de entidad que hereden de este tipo. Más información: Use la API web con definiciones de tabla.

Herencia de EntityType

Para los datos comerciales, hay dos tipos de entidades abstractas más que se heredan de crmbaseentity:

EntityType Descripción
principal Los tipos de entidad systemuser y team heredan del tipo de entidad principal. La entidad de seguridad solo proporciona la propiedad ownerid, que tiene cada tabla propiedad de un usuario. Esta herencia es lo que permite que los registros propiedad del usuario se asignen a un usuario o a un equipo.

La propiedad ownerid es la clave principal para los EntityTypes systemuser y team.
activitypointer Cualquier tabla que esté configurada como una actividad heredada del tipo de entidad activitypointer. Este tipo proporciona propiedades comunes que se encuentran en tipos de entidad como: appointment, email, fax, letter, phonecall y task. También puede crear una tabla personalizada que represente una actividad. Estas propiedades comunes hacen posible recuperar una lista de actividades de diferentes tipos usando estas propiedades comunes

La propiedad activityid es la clave principal para todos los tipos de entidad que heredan de activitypointer.

Cuando se trabaja con definiciones de tablas, existe otra jerarquía de herencia. El tipo de entidad MetadataBase hereda del resumen crmmodelbaseentity para proporcionar las propiedades MetadataId y HasChanged comunes. Más información: Use la API web con definiciones de tabla.

Claves alternativas

Cuando un tipo de entidad tiene definidas claves alternativas, hay una Annotation que describe las propiedades que participan en la definición de la clave alternativa.

El siguiente ejemplo muestra la anotación cuando la entidad account ha sido configurada para habilitar la propiedad accountnumber como clave alternativa.

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

Más información: Recuperar registro mediante una clave alternativa

Pasos siguientes

Más información sobre las propiedades.

Consulte también

Tipos y operaciones de API web
Documentos de servicio de la API web
Propiedades de API web
Propiedades de navegación de la API web
Acciones de la API web
Funciones de la API web
Tipos complejos y de enumeración de API web
Usar la API web de Dataverse

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).