web-dev-qa-db-fra.com

Entity Framework - Ajouter une propriété de navigation manuellement

J'ai généré un modèle Entity Framework (4.0) à partir de ma base de données. Je n'ai pas conçu la base de données et je n'ai aucun contrôle sur le schéma, mais il existe quelques tables pour lesquelles aucune contrainte de clé étrangère n'est définie, mais une relation implicite est définie.

Par exemple:

J'ai une table appelée People qui a les colonnes suivantes: GenderID RaceID

Il existe des tables pour le genre et la race, mais il n'y a pas de clé étrangère dans la table des personnes.

Lorsque j'ai importé le modèle, il n'a pas ajouté les propriétés de navigation pour ces relations. J'ai essayé de l'ajouter manuellement, mais De rôle et À rôle sont désactivés. Je ne sais pas comment ajouter la relation moi-même. Comment puis-je faire cela?

110
Dismissile

Ouais - ce n'est pas si simple.

Voici ce que vous faites:

1 - Faites un clic droit sur le concepteur, Ajouter -> Association

2 - Configuration de l'association et des cardinalités (Personnes * .. 1 Sexe, Personnes * .. 1 Race)

3 - Allez dans le Navigateur de modèles -> Associations

4 - Faites un clic droit sur vos associations nouvellement créées, cliquez Propriétés

5 - Ici, vous devez configurer les points de terminaison pour les options de clé et de cascade. Assurez-vous que les points de terminaison sont corrects. Vous pouvez également configurer ici une contrainte référentielle pour votre propriété de navigation implicite.

6 - Mappez la propriété de navigation sur les tables/champs appropriés.

7 - Validez votre modèle, croisez les doigts.

J'espère que cela t'aides.

176
RPM1984

Je suis tombé sur cet article de blog qui propose la solution suivante, qui a très bien fonctionné pour moi (malheureusement, je n'ai pas pu obtenir le fonctionnement de RPM1984 dans mon cas).

  1. Ajouter une association via le menu contextuel du concepteur
  2. Configurez votre association (veillez à décocher la création de la clé étrangère)
  3. Faites un clic droit sur l'association et choisissez Propriétés
  4. Clique sur le ... bouton pour contrainte de référence
  5. Mettre en place la relation entre les clés au sein
  6. Vérifier (depuis le menu contextuel du concepteur)
  7. ???
  8. Profit!
44
dav_i