Problem clé Entity Framework - Code First
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:
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:
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:
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:
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