public ModeleDeGamme GetByProduit(Produit prod) { ModeleDeGamme dto = new ModeleDeGamme(); using (var db = new maderaEntities()) { var query = from a in db.MODELE_DE_GAMME where a.MODELE_GAMME_ID.Equals(prod.Id) select a; foreach (var item in query) { dto.Id = (int)item.MODELE_GAMME_ID; dto.Nom = item.MODELE_GAMME_NOM; dto.Description = item.MODELE_GAMME_DESCRIPTION; dto.EstParDefaut = item.EST_PAR_DEFAUT; dto.NbPieces = item.MODELE_GAMME_NB_PIECES; dto.Surface = item.MODELE_GAMME_SURFACE; dto.TypeModeleGamme = typeModeleGammeRepository.GetOne(item.TYPE_MODELE_GAMME_ID); dto.Gamme = gammeRepository.GetOne(item.GAMME_ID); var image = from a in db.MODELE_GAMME_IMAGE where a.MODELE_GAMME_ID.Equals(dto.Id) select a; if (image.Count() != 0) { dto.Image = fichierRepository.GetOne(image.First().FICHIER_ID); } var queryFinitions = from a in db.LIER_FINITION where a.MODELE_GAMME_ID.Equals(dto.Id) select a; List <Finition> finitions = new List <Finition>(); foreach (var itemFin in queryFinitions) { finitions.Add(finitionRepository.getOne(itemFin.FINITION_ID)); } dto.Finitions = finitions; // // TODO: boucle infinie ? // dto.Modules = moduleRepository.GetCompositionByModeleGamme(dto); } } return(dto); }