Personalizar metadatos de relación de entidad

Las relaciones de entidad definen las formas en que los registros de la entidad se pueden asociar con registros de otras o de la misma entidad. Al crear nuevas relaciones entre entidades se crean nuevas relaciones de tabla en la base de datos. Use las relaciones entre entidades para definir las asociaciones específicas que se usan a menudo para asociar registros para informes o en la interfaz de usuario. Una vez que existe una relación, puede asociar y anular la asociación de registros en función de la relación mediante los métodos Associate y Disassociate. Más información: Acciones de registros de entidad

Para relaciones entre registros individuales que son menos formales y más flexibles, consulte Entidades de conexión.

En este tema se explica cómo trabajar con relaciones entre entidades mediante programación. Para obtener más información sobre el trabajo con relaciones entre entidades en la aplicación, consulte Crear y modificar relaciones entre entidades.

Tipos de relaciones entre entidades

Dynamics 365 Customer Engagement (on-premises) ofrece dos tipos de relaciones entre entidades. Ambos heredan de la clase RelationshipMetadataBase:

  • Relaciones de uno a varios

  • Relaciones de varios a varios

    Antes de crear una nueva relación entre entidades mediante programación, compruebe si las entidades pueden participar en la relación. Existen restricciones aplicadas a las relaciones de entidad que usan las siguientes propiedades de EntityMetadata: CanBeInManyToMany, CanBePrimaryEntityInRelationship y CanBeRelatedEntityInRelationship. Estas restricciones se tienen en cuenta al crear manualmente relaciones de entidad en las herramientas de personalización. Hay mensajes que puede usar para determinar qué relaciones puede utilizar una entidad y qué otras entidades son válidas para ese tipo de relación. Más información: Idoneidad de la relación entre entidades

    Ambos tipos de relaciones entre entidades permiten las opciones que muestran vínculos de navegación entre registros relacionados. Más información: Configurar menús asociados

Relaciones de uno a varios

En una relación de entidad de uno a varios, muchos registros de entidad que referencian (relacionados) se pueden asociar con un solo registro de entidad (principal) al que se hace referencia. El registro de entidad referenciado se denomina a veces "principal" y los registros de entidad que referencian se denominan "secundarios".

En un nodo de entidad de una página de solución, este tipo de relación entre entidades se muestra como Relación 1 a varios (1:N) o Relación varios a 1 (N:1). Se usan estos términos porque se navega a las relaciones entre entidades mediante una de las entidades. La etiqueta refleja el rol que la entidad actual tiene en la relación.

Nota

Consulte API web: crear una relación uno a varios para obtener información sobre cómo usar la API web para crear una relación de 1:N.

Para el servicio de la organización, utilice una instancia de la clase OneToManyRelationshipMetadata cuando trabaje con este tipo de relación entre entidades. Cada relación de entidad tiene un nombre de esquema único que se usa para recuperarla. Para obtener más información, consulte SchemaName. Cada relación de este tipo también tiene una entidad referenciada (Entidad principal) con un atributo referenciado, y una entidad que referencia (Entidad relacionada) con un atributo que referencia. El atributo que hace referencia se puede presentar como un campo de búsqueda en un formulario de entidad. Para obtener más información, vea

API Web Ensamblado del SDK
OneToManyRelationshipMetadata EntityType.ReferencedEntity ReferencedEntity
OneToManyRelationshipMetadata EntityType.ReferencedAttribute ReferencedAttribute
OneToManyRelationshipMetadata EntityType.ReferencingEntity ReferencingEntity
OneToManyRelationshipMetadata EntityType.ReferencingAttribute ReferencingAttribute

Puede exigir que una entidad que referencia tenga una referencia estableciendo la enumeración AttributeRequiredLevel (EnumType AttributeRequiredLevel o enumeración AttributeRequiredLevel) en ApplicationRequired en el atributo que referencia. Para mantener la integridad de los datos, cuando hace esto también debe especificar qué desea que ocurra si se elimina el registro principal. Use la propiedad OneToManyRelationshipMetadata.CascadeConfiguration para evitar que se elimine el registro principal o elimine automáticamente el registro relacionado también para evitar un registro huérfano.

También puede usar configuración en cascada para automatizar el comportamiento cuando se realizan acciones específicas en registros relacionados de la organización. Más información: Comportamiento de las relaciones de entidad

Asignar datos a los nuevos registros

Cuando hay una relación de entidad de uno a varios, puede especificar que los datos de algunos campos de la entidad referenciada se puedan transferir a cualquier nuevo registro relacionado creado en el contexto de la relación. Esto puede simplificar la entrada de datos cuando cree nuevos registros relacionados. Para obtener más información, consulte Asignaciones de entidades y atributos.

Relaciones entre entidades uno a varios autoreferenciadas

Una relación que se autoreferencia es aquella en que la entidad que referencia y la entidad referenciada es la misma. Por ejemplo, la entidad cuenta tiene una relación uno a varios que se autoreferencia y que permite una búsqueda etiquetada Cuenta primaria. Si se define el comportamiento de la relación entre entidades como Primaria no es posible que un registro se autoreferencie porque se crearía una referencia circular cuando se aplican comportamientos en cascada. Más información: Comportamiento de las relaciones de entidad

Relaciones de entidades jerárquicas de uno a varios

Con Dynamics 365 Customer Engagement (on-premises), puede especificar una relación de entidades de uno a varios que hace referencia a sí misma como la relación jerárquica designada para una entidad. La propiedad OneToManyRelationship.IsHierarchical (OneToManyRelationship.IsHierarchical o OneToManyRelationshipMetadata.IsHierarchical) marca esta relación como la relación de uno a varios que se usará para la entidad.

Todas las relaciones de entidad de uno a varios representan un tipo de jerarquía, pero las relaciones explícitamente marcadas mediante la propiedad IsHierarchical son las únicas relaciones de entidad que admiten las visualizaciones de jerarquía en la aplicación, así como nuevos operadores de consulta para recuperar registros relacionados jerárquicamente. Más información: Consultar datos jerárquicos

Cambiar el nombre de las propiedades de navegación de la API web

Si desea aplicar un nombre de propiedad de navegación de la API web personalizado a una relación de uno a varios puede establecer valores para las propiedades OneToManyRelationshipMetadata.ReferencingEntityNavigationPropertyName y OneToManyRelationshipMetadata.ReferencedEntityNavigationPropertyName.

Relaciones de varios a varios

En una relación entre entidades de varios a varios, muchos registros de entidad se pueden asociar con otros muchos registros de entidad. A diferencia de las relaciones de uno a varios, no hay campos de búsqueda en ninguna de las entidades y, por tanto, no existe jerarquía. Los registros relacionados mediante una relación de varios a varios pueden considerarse iguales y la relación es recíproca. Una relación de varios a varios también puede hacer referencia a sí misma. Debido a que no se experimenta un comportamiento en cascada en las relaciones de varios a varios, puede permitir que un registro individual tenga una referencia a sí mismo.

Nota

Consulte Crear una relación varios a varios mediante la API web para obtener información sobre cómo usar la API web para crear una relación de N:N.

Utilice una instancia de ManyToManyRelationshipMetadata (EntityType ManyToManyRelationshipMetadata o clase ManyToManyRelationshipMetadata) cuando trabaje con este tipo de relación entre entidades. Cada relación entre entidades tiene un RelationshipMetadataBase.SchemaName único que se usa para recuperarla.

Al crear una relación entre entidades de varios a varios, se crea una nueva entidad que se entrecruza donde la propiedad EntityMetadata.IsIntersect es verdadera. Los registros de esta entidad realizan un seguimiento de cada relación de varios a varios. No puede agregar atributos personalizados para entrecruzar entidades.

Cambiar el nombre de las propiedades de navegación de la API web

Si desea aplciar un nombre de propiedad de navegación de la API web personalizado a una relación de varios a varios puede establecer valores para las propiedades ManyToManyRelationshipMetadata EntityType.Entity1NavigationPropertyName and ManyToManyRelationshipMetadata EntityType.Entity2NavigationPropertyName.

Configurar menús asociados

Ambos tipos de relaciones entre entidades permiten la configuración de vínculos de navegación entre registros relacionados. Use las propiedades Metadata.AssociatedMenuConfiguration en cada tipo de definición de relación entre entidades para especificar cómo desea que se muestren los vínculos de navegación en un formulario de entidad.

Estos valores ofrecen la configuración predeterminada para la relación. Puede usar el editor de formularios para reemplazar estas opciones en cada formulario. Más información: Cambiar la navegación en un formulario

Behavior
Ofrece las siguientes opciones:

  • DoNotDisplay

  • UseCollectionName

  • UseLabel

    Group
    Ofrece las siguientes opciones:

  • Detalles

  • Marketing

  • Sales

  • Servicio

    No puede agregar nuevos grupos, pero puede cambiar el texto que se muestra para ellos mediante el editor de formularios.

    Etiqueta
    Si selecciona AssociatedMenuBehavior.UseLabel, debe proporcionar una etiqueta personalizada.

    Criterio de ordenación
    El entero proporcionado para el orden controlará la posición relativa de los elementos de navegación en el grupo. Cuanta más bajo sea el valor, más arriba aparecerá el elemento en relación con los valores de otros elementos del grupo.

Vea también

Crear y actualizar relaciones entre entidades mediante la API web
Ampliar el modelo de metadatos para Dynamics 365 Customer Engagement (on-premises)
Mensajes de relaciones entre entidades
Idoneidad de la relación entre entidades
Comportamiento de las relaciones entre entidades
Creación de relaciones de entidad
Ejemplo: Crear relaciones entre entidades
Ejemplo: volcar la información de relaciones de entidad en un archivo
Asignaciones de entidades y atributos
Recuperar registros de relaciones de varios a varios mediante entidades de intersección