MVC enfant parent et grand-parent

Résolu
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013 - 9 avril 2013 à 10:24
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013 - 10 avril 2013 à 08:28
Bonjour à tous,

voici mon problème, je dispose de 3 classes modèles (clients, projets, missions) définies comme suit :

public class Client
    {
        [Key]
        public int idClient { get; set; }
        [StringLength(4)]
        [Required]
        [MaxLength(4, ErrorMessage="Maximum 4 caractères")]
        public string txt_Init { get; set; }
        public List Projets { get; set; }

    }

public class Projet
    {
        [Key]
        public int idProjet { get; set; }
        [Required]
        public int fk_idClient { get; set; }
        [StringLength(4)]
        [Required]
        [MaxLength(4, ErrorMessage = "Maximum 4 caractères")]
        public string txt_Init { get; set; }
        [ForeignKey("fk_idClient")]
        public Client Client { get; set; }
        public List<Mission> Missions { get; set; }
        [NotMapped]
        public string labelProjet
        {
            get 
            {
               return Client.txt_Init + "/" + txt_Init; 
            }
        }
    }

public class Mission
    {
        [Key]
        public int idMision { get; set; }
        [Required]
        public int fk_idProjet { get; set; }
        [StringLength(4)]
        [Required]
        [MaxLength(4, ErrorMessage = "Maximum 4 caractères")]
        public string txt_Init { get; set; }
        [ForeignKey("fk_idProjet")]
        public Projet Projet { get; set; }
        
    }


Au niveau de mon controlleur Projet je fait appel à la liste des projets en y incluant le client lié à chaque projet comme suit :
public ViewResult Index()
        {
            return View(db.Projets.Include("Client"));
        }


Et donc au niveau de ma vue, je peux faire appel aux information du client comme ceci
@Html.DisplayFor(modelItem => item.Client.txt_Init)

ou comme ceci :
@item.labelProjet


Jusque là tout va bien, là ou je bloque c'est au niveau du controlleur de la mission, j'aimerais pouvoir sélectionner les missions mais qu'il charge également le projet (parent) et le client (grand-parent) de la mission.
Pour le parent j'ai ceci :

public ViewResult Index()
        {
            return View(db.Missions.Include("Projet"));
        }


Comment inclure le client (grand-parent) ?

Nickadele
non, ma belle ne s'appel pas Adèle
Mon Blog
A voir également:

1 réponse

nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
10 avril 2013 à 08:28
J'ai fini par trouver, en fait je cherchais trop compliqué alors que c'est tout simple

public ViewResult Index()
        {
            return View(db.Missions.Include("Projet.Client"));
        }



Nickadele
non, ma belle ne s'appel pas Adèle
Mon Blog
3
Rejoignez-nous