Bonjour,

J'abuse du forum, mais je suis sur EF First Code et y a pas beaucoup de sources. Je suis donc en train de mettre en place mes classes de modeles. J'ai une classe Demande:
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
public class Demande
    {
        public int DemandeId { get; set; }
        public string Titre { get; set; }
          ...
        public int VendeurID { get; set; }
        public int ResponsableID { get; set; }
 
        //foreign key vers le vendeur qui a fait la demande, une demande est liée à un responsable
        public virtual User Vendeur { get; set; }
        //foreign key vers le responsable de la demande, une demande est liée à un responsable
        public virtual User Responsable { get; set; }
        //Une demande peut avoir plusieurs documentations rattachées et //plusieurs message
        public virtual ICollection<Documentation> Documentations { get; set; }
        public virtual ICollection<Message> Messages { get; set; }      
    }
}
Donc elle contient l' id d'un vendeur et d'un responsable qui sont de la classe user. J'ai aussi une "navigation properties" vers les documentations et les messages relatifs à cette demande...c'est un accesseur à l'objet qui est créé à partir de la ligne de la table référencée ,de ce que j'ai compris,bien pratique...quand ça marche.

J'ai ensuite ma classe user:
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 User
    {
        public int UserId {get;set;}
         ...
        //On declare l'enumeration pour gere les rôles
        public Role Role { get; set; }
        public int RoleValue { get { return (int)Role; } set { Role = (Role)value;
 
        //je veux faire reference aux demandes qui concerne un responsable ou         //un vendeur
        public virtual ICollection<Demande> Demandes { get; set; }
 } }
 
    }
Dans mon controleur, je passe la liste de toute les demandes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
 public ActionResult Index()
        {
            return View(db.Demandes.ToList());
        }
Les informations de chaque demandes sont ensuite affichées dans un tableau de la vue, et ma question arrive, pas de probleme pour afficher les elements de la table demande, par contre si je demande d'afficher le nom du vendeur ou du responsable, j'ai un blanc sans erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
@foreach(var item in Model){
     <tr>
        <td>@Html.DisplayFor(modelItem =>item.DemandeId)</td>
        <td>@Html.DisplayFor(modelItem =>item.Titre)</td>
        <td>@Html.DisplayFor(modelItem =>item.Vendeur.Nom)</td>
        <td>@Html.DisplayFor(modelItem =>item.Responsable.Nom)</td>
Donc, meme si la complétion me propose de mettre Vendeur.Nom, je pense qu'il me manque quelquechose en base pour gérer les relations.

Sur le tuto de windows(lien) pour creer un modele complexe, on trouve une fonction qui définie ou redefinie les relations, mais ils ne définissent pas toutes les relations dedans. Cette relation serait une many-to-one? comment le dire au EF?

Bonne journée