IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linq Discussion :

Type de retour sur un select liant plusieurs tables


Sujet :

Linq

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Points : 92
    Points
    92
    Par défaut Type de retour sur un select liant plusieurs tables
    Bonjour,

    Je récupère les résultats d'une requête de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public IList<CRITERE> ListeCriteres(int type_bien)
            {
                string type = ";" + type_bien.ToString() + ";";
                var dataContext = new HabitatDataContext();
                var liste = from t in dataContext.CRITERE
                            join t2 in dataContext.ZONE on t.FK_ZONE equals t2.ID_ZONE
                            orderby t2.ORDRE
                            where t.TYPES_BIEN.Contains(type)
                            select t;
     
                return liste.ToList();
            }
    Tout fonctionne bien car cette requête ne retourne que des champs de la table CRITERE (classe CRITERE)

    En revanche si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var liste = from t in dataContext.CRITERE
                            join t2 in dataContext.ZONE on t.FK_ZONE equals t2.ID_ZONE
                            orderby t2.ORDRE
                            where t.TYPES_BIEN.Contains(type)
                            select new
                            {
                                t.ID_CRITERE,
                                t.LIBELLE_CRITERE,
                                t.LIMITATION,
                                t.ZONE.ID_ZONE,
                                t.ZONE.LIBELLE_ZONE,
                                t.ZONE.ORDRE
                            };
    je retourne des champs de la table ZONE et donc, pas question de retourner un IList<CRITERE> !

    J'ai pensé à créer une classe CRITERE_RICHE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public class CRITERE_RICHE
        {
            public int ID_CRITERE;
            public string LIBELLE_CRITERE;
            public string LIMITATION;
            public int ID_ZONE;
            public string LIBELLE_ZONE;
            public int ORDRE;
            public string NOTES;
     
     
            public CRITERE_RICHE()
            {
            }
        }
    pour pouvoir retourner un IList<CRITERE_RICHE> mais bon :
    1 : je ne sais pas comment faire
    2 : je pense que ce n'est pas très propre.


    Pour info, j'ai besoin de cette méthode pour un ObjectDataSource, lui même utilisé dans un GridView.

    Sauriez vous m'aider ? Par avance, merci.
    T.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Points : 92
    Points
    92
    Par défaut
    Bon, en fait j'ai crée une vue dans Sql Server, je l'ai ajoutée à mon fichier dbml et ainsi je peux avoir comme type de retour une liste de "vues" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public IList<MA_VUE> ListeCriteresZone(string type_bien)
            {            
                var dataContext = new HabitatDataContext();           
     
                var liste = from t in dataContext.MA_VUE
                            orderby t.ORDRE
                            where t.TYPES_BIEN.Contains(type_bien)
                            select t;
     
                return liste.ToList();
            }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Type de retour sur une routine SQL
    Par Alex63530 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 08/06/2012, 22h10
  2. Pb sur un SELECT d'un table SqlServer via un dblink Oracle
    Par Cathy dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/08/2007, 19h11
  3. requete select avec plusieurs tables
    Par samba2005kanoute dans le forum Forms
    Réponses: 30
    Dernier message: 12/04/2007, 15h46
  4. Réponses: 1
    Dernier message: 09/04/2007, 16h56
  5. Pb de syntaxe : Select avec plusieurs tables
    Par roxxxy dans le forum Requêtes
    Réponses: 6
    Dernier message: 27/03/2007, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo