Personnaliser des métadonnées de relation d’entité
Les relations d’entité définissent les manières dont les enregistrements d’entités peuvent être associés aux enregistrements d’autres entités ou de la même entité. La création de nouvelles relations d’entité crée des relations de table dans la base de données. Utilisez les relations d’entité pour définir les associations spécifiques qui sont fréquemment utilisées pour associer des enregistrements pour des rapports ou dans l’interface utilisateur. Lorsqu’une relation existe, vous pouvez associer et dissocier les enregistrements basés sur cette relation à l’aide des méthodes Associate
et Disassociate
. Pour plus d’informations : Opérations sur les enregistrements d’entité
Pour les relations entre des enregistrements individuels qui sont moins formelles et plus souples, voir Entités de connexion.
Cette rubrique traite de l’utilisation des relations d’entité par programme. Pour plus d’informations sur l’utilisation de la relation d’entité dans l’application, voir Créer et modifier des relations d’entité.
Types de relations d’entité
Dynamics 365 Customer Engagement (on-premises) comporte deux types de relations d’entité. Chacun hérite de la classe RelationshipMetadataBase :
Relations plusieurs à plusieurs
Avant de créer de nouvelles relations d’entité par programmation, vérifiez si les entités sont éligibles pour participer aux relations. Certaines contraintes sont appliquées aux relations d’entité qui utilisent les propriétés
EntityMetadata
suivantes :CanBeInManyToMany
,CanBePrimaryEntityInRelationship
etCanBeRelatedEntityInRelationship
. Ces restrictions sont prises en compte lorsque vous créez manuellement des relations d’entité dans les outils de personnalisation. Il y a des messages que vous pouvez utiliser pour déterminer les relations qu’une entité peut utiliser et quelles autres entités sont valides pour ce type de relation. Pour plus d’informations : Éligibilité des relations d’entitéLes deux types de relations d’entité permettent aux options d’afficher des liens de navigation entre les enregistrements associés. Pour plus d’informations, voir : Configurer les menus associés
Relations 1 à N (un-à-plusieurs)
Dans une relation d’entité un-à-plusieurs, différents enregistrements d’entités de référencement (associés) peuvent être associés à un seul enregistrement d’entité référencé (principal). Les enregistrements d’entités référencés sont parfois appelés parents et les enregistrements d’entité de référencement sont appelés enfants.
Dans un nœud d’entité figurant sur une page de solution, ce type de relation d’entité s’affiche sous forme d’une Relation un-à-plusieurs (1 à N) ou d’une Relation plusieurs-à-un (N à 1). Ces termes sont utilisés car vous accédez aux relations d’entité via une des entités. L’étiquette reflète le rôle que l’entité active a dans la relation.
Note
Voir API web : créer une relation un-à-plusieurs pour plus d’informations sur l’utilisation de l’API web pour créer une relation 1 à N.
Pour le service d’organisation, vous utilisez une instance de la classe OneToManyRelationshipMetadata avec ce type de relation d’entité. Chaque relation d’entité a un nom de schéma spécifique que vous utilisez pour la récupérer. Pour plus d’informations, voir SchemaName. Chaque relation d’entité de ce type a aussi une entité référencée (Entité principale) avec un attribut référencé, et une entité de référencement (Entité associée) avec un attribut de référencement. L’attribut de référencement peut être affiché sous forme de champ de recherche dans un formulaire d’entité. Pour plus d’informations, consultez
API Web | Assembly du Kit de développement logiciel (SDK) |
---|---|
OneToManyRelationshipMetadata EntityType.ReferencedEntity | ReferencedEntity |
OneToManyRelationshipMetadata EntityType.ReferencedAttribute | ReferencedAttribute |
OneToManyRelationshipMetadata EntityType.ReferencingEntity | ReferencingEntity |
OneToManyRelationshipMetadata EntityType.ReferencingAttribute | ReferencingAttribute |
Vous pouvez demander qu’une entité de référencement ait une référence en définissant l’AttributeRequiredLevel
énumération (AttributeRequiredLevel EnumType ou AttributeRequiredLevel énumération) sur ApplicationRequired
dans l’attribut de référencement. Pour préserver l’intégrité des données, lorsque vous effectuez cette opération, vous devez également spécifier ce qui doit se produire si l’enregistrement principal est supprimé. Utilisez la propriété OneToManyRelationshipMetadata.CascadeConfiguration
pour empêcher la suppression de l’enregistrement principal ou supprimer automatiquement l’enregistrement associé pour empêcher d’avoir un enregistrement orphelin.
Vous pouvez également utiliser la configuration en cascade pour automatiser le comportement lorsque des actions spécifiques sont exécutées sur les enregistrements associés de l’organisation. Pour plus d’informations, voir : Comportement des relations d’entité
Mapper les données aux nouveaux enregistrements
Lorsqu’il existe une relation d’entité un-à-plusieurs, vous pouvez spécifier que les données issues de certains champs de l’entité référencée peuvent être transférées dans n’importe quel nouvel enregistrement associé créé dans le contexte de la relation. Cela peut rationaliser la saisie des données lorsque vous créez de nouveaux enregistrements associés. Pour plus d’informations, voir Mappages d’attributs et d’entités.
Auto-référencement des relations d’entité un-à-plusieurs (1 à N)
Une relation auto-référentielle apparaît là où l’entité de référencement et l’entité référencée est la même. Par exemple, l’entité de compte a une relation un-à-plusieurs auto-référentielle qui autorise une recherche portant l’étiquette Compte parent. Si le comportement d’une relation d’entité est défini comme Parental, il est impossible à un enregistrement de se référencer lui-même car cela créerait une référence circulaire lorsque des comportements en cascade sont appliqués. Pour plus d’informations, voir : Comportement des relations d’entité
Relations d’entités hiérarchiques 1:N
Avec Dynamics 365 Customer Engagement (on-premises), vous pouvez spécifier une relation d’entité 1:N auto- référentielle comme relation hiérarchique conçue pour une entité. La propriété OneToManyRelationship.IsHierarchical
(OneToManyRelationship.IsHierarchical ou OneToManyRelationshipMetadata.IsHierarchical.) marque cette relation comme relation un-à-plusieurs à utiliser pour l’entité.
Toutes les relations d’entité 1:N représentent un type de hiérarchie, mais les relations marquées explicitement avec la propriété IsHierarchical
sont les seules relations d’entité prenant en charge les visualisations de hiérarchie de l’application, ainsi que les nouveaux opérateurs de requête pour récupérer les enregistrements associés de manière hiérarchique. Informations complémentaires : Rechercher les données hiérarchiques
Changer le nom des propriétés de navigation de l’API web
Si vous souhaitez appliquer un nom de propriété de navigation de l’API web personnalisé pour les relations un-à-plusieurs, vous pouvez définir des valeurs pour les propriétés OneToManyRelationshipMetadata.ReferencingEntityNavigationPropertyName
et OneToManyRelationshipMetadata.ReferencedEntityNavigationPropertyName
.
Relations plusieurs-à-plusieurs
Dans une relation d’entité plusieurs-à-plusieurs, différents enregistrements d’entités peuvent être associés à différents autres enregistrements d’entités. Contrairement aux relations 1:N, il n’y a aucun champ de recherche sur les entités et, par conséquent, aucune hiérarchie. Les enregistrement associés avec une relation plusieurs-à-plusieurs (N à N) peuvent être considérés comme des homologues et la relation est réciproque. Une relation plusieurs-à-plusieurs (N à N) peut également être auto-référentiel. Étant donné qu’aucun comportement en cascade n’est impliqué dans les relations plusieurs-à-plusieurs (N à N), vous pouvez autoriser un enregistrement individuel à avoir une référence à lui-même.
Note
Voir Créer une relation plusieurs-à-plusieurs à l’aide de l’API web pour plus d’informations sur l’utilisation de l’API web pour créer une relation N à N.
Vous utilisez une instance de la classe ManyToManyRelationshipMetadata
(ManyToManyRelationshipMetadata EntityType ou ManyToManyRelationshipMetadata) lorsque vous travaillez avec ce type de relation d’entité. Chaque relation d’entité a un RelationshipMetadataBase.SchemaName
spécifique que vous utilisez pour la récupérer.
La création d’une relation d’entité plusieurs-à-plusieurs (N à N) crée une nouvelle entité d’intersection où la propriété EntityMetadata.IsIntersect
a la valeur true. Les enregistrements de cette entité suivent chaque relation plusieurs-à-plusieurs individuelle. Vous ne pouvez pas ajouter d’attributs personnalisés aux entités avec intersection.
Changer le nom des propriétés de navigation de l’API web
Si vous souhaitez appliquer un nom de propriété de navigation de l’API web personnalisé pour les relations plusieurs à plusieurs, vous pouvez définir les valeurs pour les propriétés ManyToManyRelationshipMetadata EntityType.Entity1NavigationPropertyName et ManyToManyRelationshipMetadata EntityType.Entity2NavigationPropertyName properties.
Configurer les menus associés
Les deux types de relations d’entités permettent la configuration de liens de navigation entre les enregistrements associés. Utilisez les propriétés Metadata.AssociatedMenuConfiguration
dans chaque type de définition de relation d’entité pour indiquer comment afficher les liens de navigation dans un formulaire d’entité.
Ces valeurs fournissent la configuration par défaut de la relation. Vous pouvez utiliser l’éditeur de formulaires pour remplacer ces options pour chaque formulaire. Informations complémentaires : Modifier la navigation dans un formulaire
Behavior
Comporte les options suivantes :
DoNotDisplay
UseCollectionName
UseLabel
Group
Comporte les options suivantes :Détails
Marketing
Sales
Service
Vous ne pouvez pas ajouter de nouveaux groupes, mais vous pouvez modifier le texte affiché pour ceux-ci à l’aide de l’éditeur de formulaires.
Étiquette
Si vous sélectionnezAssociatedMenuBehavior.UseLabel
, vous devez entrer une étiquette personnalisée.commande
L’entier fourni pour l’ordre contrôlera la position relative des éléments de navigation dans le groupe. Plus la valeur est faible, plus l’élément s’entend par rapport aux valeurs des autres éléments du groupe.
Voir aussi
Créer et mettre à jour les relations d’entité à l’aide de l’API web
Étendre le modèle de métadonnées pour Dynamics 365 Customer Engagement (on-premises)
Messages de relation d’entité
Éligibilité de la relation d’entité
Comportement des relations d’entité
Créer des relations d’entités
Exemple : créer des relations d’entités
Exemple : vidage des informations de relation d’entité dans un fichier
Mappages d’entités et d’attributs
Extraire des enregistrements pour des relations plusieurs-à-plusieurs à l’aide des entités avec intersection