Relations : EF Designer

Remarque

Cette page fournit des informations sur la configuration des relations dans votre modèle à l’aide de EF Designer. Pour obtenir des informations générales sur les relations dans EF et sur l’accès et la manipulation des données à l’aide de relations, consultez Relations et propriétés de navigation.

Les associations définissent les relations entre les types d'entité dans un modèle. Cette rubrique montre comment mapper des associations avec Entity Framework Designer (EF Designer). L’image suivante montre les fenêtres principales utilisées lors de l’utilisation de EF Designer.

EF Designer

Remarque

Lorsque vous générez le modèle conceptuel, des avertissements sur les entités et les associations non mappées peuvent s'afficher dans la Liste d'erreurs. Vous pouvez ignorer ces avertissements, car une fois que vous choisissez de générer la base de données à partir du modèle, les erreurs disparaissent.

Vue d’ensemble des associations

Lorsque vous concevez votre modèle à l’aide du Concepteur EF, un fichier .edmx représente votre modèle. Dans le fichier .edmx, un élément Association définit une relation entre deux types d’entités. Une association doit spécifier les types d'entités impliqués dans la relation et le nombre possible de types d'entités à chaque terminaison de la relation, appelé « multiplicité ». La multiplicité d’une fin d’association peut avoir une valeur d’un (1), zéro ou un (0,.1) ou plusieurs (*). Ces informations sont spécifiées dans deux éléments enfants End.

Pendant le temps d'exécution, il est possible d'accéder aux instances de type d'entité au niveau d'une terminaison d'une association via les propriétés de navigation ou les clés étrangères (si vous choisissez d’exposer des clés étrangères dans vos entités). Avec les clés étrangères exposées, la relation entre les entités est gérée avec un élément ReferentialConstraint (un élément enfant de l’élément Association). Il est recommandé de toujours exposer des clés étrangères pour les relations dans vos entités.

Remarque

Dans beaucoup de (*:*) plusieurs-à-plusieurs, vous ne pouvez pas ajouter de clés étrangères aux entités. Dans une relation *:*, les informations d’association sont gérées avec un objet indépendant.

Pour plus d’informations sur les éléments CSDL (ReferentialConstraint, Association, etc.) consultez la spécification CSDL.

Créer et supprimer des associations

Le fait de créer une association avec EF Designer met à jour le contenu du modèle du fichier .edmx. Après avoir créé une association, vous devez créer ses mappages (mentionné plus tard dans le sujet).

Remarque

Cette section suppose que vous avez déjà ajouté les entités que vous souhaitez créer une association entre votre modèle.

Pour créer une association

  1. Cliquez avec le bouton droit sur une zone vide de l'aire de conception, pointez sur Ajouter un nouveau, puis sélectionnez Association….

  2. Renseignez les paramètres de l’association dans la boîte de dialogue Ajouter une association.

    Add Association

    Remarque

    Vous pouvez choisir de ne pas ajouter de propriétés de navigation ni de propriétés de clé étrangère aux entités au niveau des terminaisons de l'association en désactivant les cases à cocher **Propriété de navigation** et **Ajouter les propriétés de la clé étrangère à l'entité <nom de type d'entité> **cases à cocher. Si vous ajoutez une seule propriété de navigation, l'association n'est parcourable que dans une seule direction. Si vous n'ajoutez pas de propriétés de navigation, vous devez ajouter des propriétés de clé étrangère pour accéder aux entités au niveau des terminaisons de l'association.

  3. Cliquez sur OK.

Pour supprimer une association

Pour supprimer une association, effectuez l’une des opérations suivantes :

  • Cliquez avec le bouton droit sur l'association sur l'aire de EF Designer, puis sélectionnez Supprimer.

  • - OU -

  • Sélectionnez une ou plusieurs associations et appuyez sur la touche SUPPR.

Inclure des propriétés de clé étrangère dans vos entités (contraintes référentielles)

Il est recommandé de toujours exposer des clés étrangères pour les relations dans vos entités. Entity Framework utilise une contrainte référentielle pour identifier qu’une propriété agit comme clé étrangère pour une relation.

Si vous avez coché la case Ajouter des propriétés de clé étrangère au <nom de type d’entité> entité lors de la création d’une relation, cette contrainte référentielle a été ajoutée pour vous.

Lorsque vous utilisez EF Designer pour ajouter ou modifier une contrainte référentielle, EF Designer ajoute ou modifie un élément ReferentialConstraint dans le contenu CSDL du fichier .edmx.

  • Double-cliquez sur l'association à modifier. La boîte de dialogue Contrainte référentielle s'affiche.

  • Dans la liste déroulante Principal, sélectionnez l'entité principale dans la contrainte référentielle. Les propriétés de clé de l'entité sont ajoutées à la liste Clé principale dans la boîte de dialogue.

  • Dans la liste déroulante Dépendant, sélectionnez l'entité dépendante dans la contrainte référentielle.

  • Pour chaque clé principale dotée d'une clé dépendante, sélectionnez une clé dépendante correspondante dans les listes déroulantes de la colonne Clé dépendante.

    Ref Constraint

  • Cliquez sur OK.

créer et modifier des mappages d'association

Vous pouvez spécifier la façon dont une association est mappée à la base de données dans la fenêtre Détails du mappage du Concepteur EF.

Remarque

Vous ne pouvez mapper que les détails des associations qui n’ont pas de contrainte référentielle spécifiée. Si une contrainte référentielle est spécifiée, une propriété de clé étrangère est incluse dans l’entité et vous pouvez utiliser les détails de mappage de l’entité pour contrôler la colonne à laquelle la clé étrangère est mappée.

Créer un mappage d'association

  • Cliquez avec le bouton droit sur une association dans l'aire de conception, puis sélectionnez Mappage de table. Le mappage d'association s'affiche dans la fenêtre Détails de Mapping.

  • Cliquez sur Ajouter une table ou une vue. Une liste déroulante s'affiche. Elle contient toutes les tables du modèle de stockage.

  • Sélectionnez la table à laquelle l'association doit être mappée. La fenêtre Détails de Mapping affiche les deux terminaisons de l'association et les propriétés de clé pour le type d'entité de chaque terminaison.

  • Pour chaque propriété de clé, cliquez sur le champ Colonne et sélectionnez la colonne à laquelle la propriété doit être mappée.

    Mapping Details 4

Modifier un mappage d'association

  • Cliquez avec le bouton droit sur une association dans l'aire de conception, puis sélectionnez Mappage de table. Le mappage d'association s'affiche dans la fenêtre Détails de Mapping.
  • Cliquez sur mapper à <Nom de table>. Une liste déroulante s'affiche. Elle contient toutes les tables du modèle de stockage.
  • Sélectionnez la table à laquelle l'association doit être mappée. La fenêtre Détails de Mapping affiche les deux terminaisons de l'association et les propriétés de clé pour le type d'entité de chaque terminaison.
  • Pour chaque propriété de clé, cliquez sur le champ Colonne et sélectionnez la colonne à laquelle la propriété doit être mappée.

Modifier et supprimer des propriétés de navigation

Les propriétés de navigation sont des propriétés de raccourci qui permettent de rechercher les entités au niveau des terminaisons d'une association dans un modèle. Il est possible de créer des propriétés de navigation lorsque vous créez une association entre deux types d'entité.

Pour modifier les propriétés de navigation

  • Sélectionnez une propriété de navigation sur l'aire de EF Designer. Des informations sur la propriété de navigation s'affichent dans la fenêtre Visual Studio Propriétés.
  • Modifiez les paramètres de la propriété dans la fenêtre Propriétés.

Pour supprimer des propriétés de navigation

  • Si les clés étrangères ne sont pas exposées sur les types d'entité dans le modèle conceptuel, le fait de supprimer une propriété de navigation peut rendre l'association correspondante parcourable dans une seule direction ou pas parcourable du tout.
  • Cliquez avec le bouton droit sur une propriété de navigation sur l'aire de EF Designer, puis sélectionnez Supprimer.