Bonjour,
J'utilise Entity Framework pour accéder à ma base de données. J'ai donc générer mes classes depuis m'a base de données.
Par exemple, voici la classe Etudiant et Classe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 //------------------------------------------------------------------------------ // <auto-generated> // Ce code a été généré à partir d'un modèle. // // Des modifications manuelles apportées à ce fichier peuvent conduire à un comportement inattendu de votre application. // Les modifications manuelles apportées à ce fichier sont remplacées si le code est régénéré. // </auto-generated> //------------------------------------------------------------------------------ namespace GestionNoteWeb.Models { using System; using System.Collections.Generic; public partial class Etudiant { public Etudiant() { this.Note = new HashSet<Note>(); } public int idEtudiant { get; set; } public string nomEtudiant { get; set; } public string prenomEtudiant { get; set; } public string emailEtudiant { get; set; } public string telephoneEtudiant { get; set; } public Nullable<int> classe { get; set; } public virtual Classe Classe1 { get; set; } public virtual ICollection<Note> Note { get; set; } } }Par exemple, quand je cherche la liste des Etudiants, sa me met une erreur du type référence circulaire. En effet, un Etudiant est dans une classe, une Classe possède plusieurs Etudiant. Du coup, dans la Classe Etudiant, j'ai int classe, qui correspond à l'id dans la bd, et Classe Classe1 qui fait la liaison avec la table classe. J'ai plus ou moins la même chose dans la classe Classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 //------------------------------------------------------------------------------ // <auto-generated> // Ce code a été généré à partir d'un modèle. // // Des modifications manuelles apportées à ce fichier peuvent conduire à un comportement inattendu de votre application. // Les modifications manuelles apportées à ce fichier sont remplacées si le code est régénéré. // </auto-generated> //------------------------------------------------------------------------------ namespace GestionNoteWeb.Models { using System; using System.Collections.Generic; public partial class Classe { public Classe() { this.ClasseMatiere = new HashSet<ClasseMatiere>(); this.Devoir = new HashSet<Devoir>(); this.Etudiant = new HashSet<Etudiant>(); } public int idClasse { get; set; } public string nomClasse { get; set; } public Nullable<int> professeurPrincipal { get; set; } public virtual ICollection<ClasseMatiere> ClasseMatiere { get; set; } public virtual ICollection<Devoir> Devoir { get; set; } public virtual ICollection<Etudiant> Etudiant { get; set; } public virtual Professeur Professeur { get; set; } } }
Ma question est : est-normal d'avoir dans la classe Etudiant, les 2 attribut classe et Classe1, dans la classe Classe avoir la collection Etudiant ? Si c'est pas normal, comment améliorer cela ?
Comment éviter les références circulaire?
Partager