Relations many to many linq to entities

Résolu
maxwellff Messages postés 2 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 juin 2010 - 5 juin 2010 à 10:45
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 5 juin 2010 à 23:03
Bonjour à tous,

Voici mon problème

J'ai une table USER, une table CAMPUS et une table relationnelle que je nomme TJ_REL_USER_CAMPUS avec un id user et un id campus.

Je souhaiterais faire une requete linq to entities pour m'afficher les campus en fonctions de l'id User.

J'ai donc codé ca
public List<CampusEntities> GetCampusByIdUser(int idUser)
        {
            DAL.timetableEntities entity=new timetableEntities();
            List<CampusEntities> listCampus=new List<CampusEntities>();
            List<DAL.T_CAMPUS> list = (from camp in entity.T_CAMPUS
                         from camUti in entity.TJ_REL_UTILISATEUR_CAMPUS
                          where camUti.UTI_ID.Equals(idUser)
                          select camp).Distinct().ToList();

            foreach(var campus in list)
            {
                listCampus.Add(new CampusEntities(){Id=campus.CAM_ID,Libelle =   campus.CAM_LIBELLE,Ville=campus.CAM_VILLE});
            }

            return listCampus;


Le problème c'est que plutot que m'afficher uniquement les campus de l'utilisateur, ca m'affiche tout et je ne comprends pas mon erreur.
Y-aurait-il une ame charitable qui pourrait m'expliquer pourquoi ca ne marche pas?
Merci d'avance
Cordialement, Maxwell

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
5 juin 2010 à 12:05
Salut,

Je ne comprends pas ou est ton problème.

Il faut mieux l'expliquer (ici tu mets que la DAL et tu nous parles d'affichage.

Comment est fait le binding pour ton affichage.

Une remarque ta boucle ne sert a rien tu peut la mettre dans le select.

 List<CampusEntities> list = (from camp in entity.T_CAMPUS
                         from camUti in entity.TJ_REL_UTILISATEUR_CAMPUS
                          where camUti.UTI_ID.Equals(idUser)
                          select new CampusEntities(){Id=camp.CAM_ID,Libelle =   camp.CAM_LIBELLE,Ville=camp.CAM_VILLE}).Distinct().ToList();


Ensuite le distinct n'est peut etre pas justifié
et le ToList devrait peut etre apparaitre plus tard pour faire de l'execution de requete en différé.
3
maxwellff Messages postés 2 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 juin 2010
5 juin 2010 à 13:46
Bonjour nhervagault,

Je viens de régler mon problème avec une expression lambda.
Le binding est fait sur une checkboxlist.C'etait bien ma requete qui n'était pas bonne.
Merci d'avoir pris part à mon probleme.
Cordialement, Maxwell
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
5 juin 2010 à 23:03
lambda expression c'est a dire?
normalement ce que tu avais mieux et ce que j'ai mis devais fonctionner
0
Rejoignez-nous