MVC enfant parent et grand-parent [Résolu]

Messages postés
1253
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013
- - Dernière réponse : nickadele
Messages postés
1253
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
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
1253
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 153 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nickadele