Salut,
comment je peux ajouter une propriété de navigation ( public virtual ICollection<Enrollment> Enrollments { get; set; } ) à une classe généré par Entity Framework, j'ai essayé en l'ajoutant dans myModel.Designer.cs mais ça n'a pas marché![]()
Merci








Salut,
comment je peux ajouter une propriété de navigation ( public virtual ICollection<Enrollment> Enrollments { get; set; } ) à une classe généré par Entity Framework, j'ai essayé en l'ajoutant dans myModel.Designer.cs mais ça n'a pas marché![]()
Merci
Il faut utiliser soit le mode graphique (fichier .edmx) de ton modèle si la propriété de navigation est une classe (ici Enrollments ) persistante (présente dans l'edmx), soit créer une classe partiel de la classe parente ayant une propriété public virtual ICollection<Enrollment> Enrollments { get; set; } Par contre il faudra définir comment cette propriété est chargée.








Merci pour ta réponse,
j'ai essayé de le charger dans la vue Details.cshtml:
mais j'obtiens une erreur au niveau de la Ligne38:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51@model ContosoUniversity.Models.Etudiant @{ ViewBag.Title = "Details"; } <h2>Details</h2> <fieldset> <legend>Etudiant</legend> <div class="display-label">Nom</div> <div class="display-field"> @Html.DisplayFor(model => model.Nom) </div> <div class="display-label">Prenom</div> <div class="display-field"> @Html.DisplayFor(model => model.Prenom) </div> <div class="display-label">DateInscription</div> <div class="display-field"> @Html.DisplayFor(model => model.DateInscription) </div> <div class="display-label"> @Html.LabelFor(model => model.Inscriptions) </div> <div class="display-field"> <table> <tr> <th>Grade</th> </tr> @foreach (var item in Model.Inscriptions) { <tr> <td> @Html.DisplayFor(modelItem => item.Grade) </td> </tr> } </table> </div> </fieldset> <p> @Html.ActionLink("Edit", "Edit", new { id=Model.IDetudiant }) | @Html.ActionLink("Back to List", "Index") </p>
System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
Ligne 36 : <th>Grade</th>
Ligne 37 : </tr>
Ligne 38 : @foreach (var item in Model.Inscriptions)
Ligne 39 : {
Ligne 40 : <tr>
C'est dans le contrôleur qu'il faut charger Model.Inscriptions. Dans la vue tu l'affiche en y accédant. Donc là on voit bien que cette propriété n'est pas chargé elle est à null.
La propriété Inscriptions vient d'où ? De la base de données ? Si c'est la cas il faut modifier le modèle dans l'edmx. Si cela vient d'autre part, fichier, calcule, webservice... il faut instancier cette propriété en utilisant sa source.








Bonjour,
vient d'une classe partial:La propriété Inscriptions vient d'où ?
les classes partial sont dans Models et les autres en base de donnée..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ... namespace ContosoUniversity.Models { public partial class Etudiant { public virtual ICollection<Inscription> Inscriptions { get; set; } }
j'ai essayé de le charger en ajoutant Inscriptions = new List<Inscription> ();C'est dans le contrôleur qu'il faut charger Model.Inscriptions.
mais ça m'a affiché 3 erreurs..
Si la list Inscription est vide au départ, Inscriptions = new List<Inscription> (); devrait permettre que cela fonctionne.
L'erreur est toujours :
System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
Partager