Bonjour,

En code first, j'ai une classe Film dans Models qui est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Film
    {
        public int Id { get; set; }
 
        public string Titre { get; set; }
 
        public int Annee { get; set; }
 
        public string Descriptif { get; set; }
 
        public string Appreciation { get; set; }
 
        public Realisateur Realisateur { get; set; }
    }
Et voici la classe Realisateur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 public class Realisateur
    {
        public int Id { get; set; }
 
        public string Nom { get; set; }
 
        public string Prenom { get; set; }
    }
J'aimerais afficher toutes les information d'un film (avec son réalisateur) dans une vue.
Dans ma base de données, générée après avoir fait une migration, j'ai bien renseigné comme Realisateur_Id : 1 (Correspondant à Steven Spielberg) pour le film avec l'ID 1 : A.I..

Dans mon FilmController voici le code que j'ai pour Index :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
  public ActionResult Index()
        {
            //var model = dbCtx.Films.ToList();
            //return View("Index", model);
 
            var films = from f in dbCtx.Films
                        join r in dbCtx.Realisateurs on
                        f.Realisateur.Id equals r.Id
                        select f;
 
            return View("Index", films);
 
        }

Voici le code de ma vue Index de Film:

Code CSHTML : 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
@model IEnumerable<WebApplicationFilm2.Models.Film>
 
@{
    ViewBag.Title = "Film";
}
 
<h2>Index</h2>
 
<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Titre)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Annee)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Descriptif)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Appreciation)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Realisateur.Id)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Realisateur.Nom)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Realisateur.Prenom)
        </th>
 
        <th></th>
    </tr>
 
@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Titre)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Annee)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Descriptif)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Appreciation)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Realisateur.Id)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Realisateur.Nom)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Realisateur.Prenom)
        </td>
 
 
        <td>
            @Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
            @Html.ActionLink("Details", "Details", new { id = item.Id }) |
            @Html.ActionLink("Delete", "Delete", new { id = item.Id })
        </td>
    </tr>
}
 
</table>

Je ne parviens pas à faire afficher ni l'id, ni le nom, ni le prénom du réalisateur dans la vue. Ils restent vides car en déboguant, je m'aperçois que dans le résultat du select il y a null pour le réalisateur alors que les autres champs sont bien remplis.

Nom : Film.png
Affichages : 55
Taille : 15,0 Ko

Quelqu'un pourrait-il m'aider à résoudre ce problème?
Merci d'avance.