Bonjour à tous ,
J'ai un problème de clé pour établir la relation entre deux entités J'ai trois classes : Formation / Etablissement et Competence
Dans ma classe Formation je possède un objet Etablissement que j'ai réussi à mapper correctement , à partir d'un tutoriel que je suis , comme ceci :
J'ai pas trop compris dans son tutoriel pourquoi il a indiqué la clé étrangére dans la classe établissement car on dirait que le framework prend directement l'id de l'objet unEtablissement en clé étrangére car quand je consulte le mode conception de la base , il me met unEtablissement_id.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public class Formation { public int Id { get; set; } public string libelleFormation { get; set; } public Etablissement unEtablissement { get; set; } //foreign key public int etablissementId; }
jusqu'a la pas soucis la migration ce fait correctement et la mise à jour de la bdd également mais le problème intervient quand je souhaite récupérer la liste de compétence que j'ai acquéris durant cette formation ( 1,n ; 1,1 pour la relation que je souhaite)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public class Etablissement { public int id { get; set; } public string libelleEtablissement { get; set; } public string ville { get; set; } }
Je me suis pris comme ceci en essayant de me baser sur le tutoriel:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public class Formation { public int Id { get; set; } public string libelleFormation { get; set; } public Etablissement unEtablissement { get; set; } public int etablissementId; public List<Competence> lesCompetences { get; set; } }mais j'ai l'erreur quand je fais la migration : site_seb.Models.Competence: : Aucune clé n'est définie pour l'EntityType 'Competence'. Définissez la clé pour cet EntityType.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class Competence { public int id { get; set; } public string libelleCompetence { get; set; } public int niveauCompetence { get; set; } public int idFormation { get; set; } }
Competences: EntityType: L'EntitySet 'Competences' est basé sur le type 'Competence' pour lequel il n'existe aucune clé définie.
J'ai essayé de me baser par rapport à l'exemple mais je ne sais pas si c'est comme ca qui faut s'y prendre ou autrement , si quelqu'un voudrait bien me préciser ?
Par ailleurs je souhaiterai savoir aussi si on a une relation (n,n) et qu'on doit sortir une nouvelle entité comme faut -il faire ? Si vous avez un tutoriel qui explique tout cela je suis preneur
Merci d'avance à tous
Partager