Compartir por


Web API EntityTypes

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

EntityType Normalmente, los elementos tienen los atributos siguientes:

Atributo Description
Name El nombre del tipo, el LogicalName de la tabla.
BaseType El EntityType del que se hereda el tipo de entidad.

Por ejemplo, este elemento XML es el EntityType de 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 entidad tienen los siguientes elementos secundarios:

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

Tipos de entidad especiales

Hay tres tipos de entidad que no tienen Keyelementos , Propertyo NavigationProperty .

crmbaseentity

Este elemento define un tipo abstracto común para cualquier tabla que contenga datos empresariales.

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

Dado que todos los tipos de entidad que contienen datos empresariales heredan de crmbaseentity, crmbaseentity se hace referencia 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 usar como parámetro para una acción o como una propiedad de respuesta de una función o acción.

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

crmmodelbaseentity

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

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

Este elemento define un tipo abstracto común para las definiciones de esquema. Es el tipo base de otra clase base abstracta que se usa para las definiciones de tabla. A menos que quiera crear y modificar tablas, columnas y relaciones mediante la API web, no es necesario 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 empresariales, hay dos tipos de entidad más abstractos que heredan de crmbaseentity:

EntityType Description
principal systemuser y team heredan del tipo de entidad principal. Principal solo proporciona la propiedad ownerid, que cada tabla de propiedad del usuario tiene. Esta herencia es lo que permite asignar registros propiedad del usuario a un usuario o a un equipo.

La ownerid propiedad es la clave principal para systemuser y team EntityTypes.
activitypointer Cualquier tabla configurada como actividad hereda del activitypointer tipo de entidad. Este tipo proporciona propiedades comunes que se encuentran en tipos de entidad como, por ejemplo, appointment, emailfax, letter, phonecally task. También puede crear una tabla personalizada que represente una actividad. Estas propiedades comunes permiten recuperar una lista de actividades de diferentes tipos mediante estas propiedades comunes.

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

Al trabajar con definiciones de tabla, hay otra jerarquía de herencia. MetadataBase El tipo de entidad hereda del abstracto crmmodelbaseentity para proporcionar 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 un Annotation que describe las propiedades implicadas en la definición de clave alternativa.

En el ejemplo siguiente se muestra la anotación cuando la account entidad se ha configurado para habilitar la accountnumber propiedad como una 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: Recuperación del registro mediante una clave alternativa

Pasos siguientes

Obtenga información sobre las propiedades.

Consulte también

Operaciones y tipos de API web
Documentos del servicio API web
Propiedades de api web
Propiedades de navegación de api web
Acciones de API web
Funciones de API web
Tipos complejos y enumeración de API web
Usar la API web de Dataverse