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 :

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;
 
    }
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
 
public class Etablissement
    {
        public int id { get; set; }
        public string libelleEtablissement { get; set; }
        public string ville { get; set; }
    }
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)

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; }
 
    }
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; }
    }
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.
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