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

Messages postés
1253
Date d'inscription
mercredi 7 août 2002
Dernière intervention
10 avril 2013
- 9 avril 2013 à 10:24 - Dernière réponse :
Messages postés
1253
Date d'inscription
mercredi 7 août 2002
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
Dernière intervention
10 avril 2013
10 avril 2013 à 08:28
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

Merci nickadele 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de nickadele

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.