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 :

Requête tellement simple qu'elle en devient impossible [Débutant]


Sujet :

Linq

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2014
    Messages : 13
    Points : 13
    Points
    13
    Par défaut Requête tellement simple qu'elle en devient impossible
    Bonjour bonjour,

    Mon problème : J'aimerais faire une requête de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select PRM_ANNEE_SOLAIRE from PARAMETRE
    en utilisant les requêtes d'Entity Framework, c'est-à-dire,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public List<Dossier> GetAll()
    {
          return _context.Dossier.OrderBy(c => c.DossierId).ToList<Dossier>();
    }
    Impossible de trouver comment faire ça proprement pour un requête aussi simple....

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    C'est aussi simple en Linq :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public List<int> GetAnneesSolaires()
    {
          return _context.PARAMETRE.Select(p=>p.PRM_ANNEE_SOLAIRE).ToList(); //Pas besoin de mettre le type générique dans "ToList".
    }
    En supposant que ton champ est un entier.

    Autre possibilité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public List<int> GetAnneesSolaires()
    {
          return (from p in _context.PARAMETRE
                   select p.PRM_ANNEE_SOLAIRE).ToList();
    }
    où est le problème?

    As-tu regardé l'aide en ligne de Linq en général?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Salut,

    Imaginons un classe Bidule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            public class Bidule
            {
                public int IdBidule { get; set; }
                public string Text { get; set; }
            }
    Une application console qui va générer un List de Bidule et sélectionner la propriété "Text" dans la List :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
            static void Main(string[] args)
            {
                var bidules = new List<Bidule>
                {
                    new Bidule { IdBidule=1, Text="Bidule1" },
                    new Bidule { IdBidule=2, Text="Bidule2" },
                    new Bidule { IdBidule=3, Text="Bidule3" },
                    new Bidule { IdBidule=4, Text="Bidule4" },
                    new Bidule { IdBidule=5, Text="Bidule5" },
                    new Bidule { IdBidule=6, Text="Bidule6" },
                    new Bidule { IdBidule=7, Text="Bidule7" }
                };
     
                var results = bidules.Select(b => b.Text);
     
                foreach (var biduleText in results)
                {
                    Console.WriteLine(biduleText);
                }
                Console.ReadLine();
    }
    //Résultat :
    //Bidule1
    //Bidule2
    //Bidule3
    //Bidule4
    //Bidule5
    //Bidule6
    //Bidule7

    En gros en respectant ta requête SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return _context.PARAMETRE.Select(p=> p.PRM_ANNEE_SOLAIRE);


    Edit :
    En tout cas on est d'accord Philippe

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2014
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Alors les aides en ligne c'est juste la cata, ne m'en parlez pas.

    Parce que ce que je veux c'est savoir comment avoir les données mais ! Je sais qu'il n'y aura toujours une seule ligne dans la colonne. Or toutes les solutions proposent de faire un foreach.
    Et en fait, je ne veux pas de List.
    Oui mais non m'voyez...

    EDIT : Trouvé ! Je ne connaissais mal la classe List il suffit de faire votre requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public List<string> GetAnneeScolaire()
    {
          return _context.PARAMETRE.Select(p=>p.PRM_ANNEE_SCOLAIRE).ToList();
    }
    suivi de l'extraction de données toute simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     public string GetAnneeScolaire()
    {
         List<string> tmp = Dal.GetAnneeScolaire();
         string res = tmp[0];
        /* foreach (string t in tmp)
        {
             res = t;
        }*/
        return res;
    }

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ah d'accord, ça te ne l'avais pas précisé. Il faut être précis quand tu poses une question. Parce que la requête d'origine que tu nous as montré peut théoriquement renvoyer plus d'une ligne.
    Dans ce cas, si tu es absolument sûr qu'il n'y a vraiment qu'une ligne tu peux faire par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public int GetAnneeSolaire()
    {
          return _context.PARAMETRE.Select(p=>p.PRM_ANNEE_SOLAIRE).Single(); //1 seule ligne, ni plus ni moins, sinon ça lance une exception.
    }
    [EDIT] Ma solution est encore plus simple!
    [EDIT2] ...et elle t'évite en plus d'instancier un tableau pour rien.
    Oups, ce n'était pas une année solaire, mais une année scolaire!

  6. #6
    Membre éprouvé Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Points : 1 118
    Points
    1 118
    Par défaut
    Citation Envoyé par BlackFridge Voir le message
    Impossible de trouver comment faire ça proprement pour un requête aussi simple....
    A mettre dans ses favoris !!!!!

    http://code.msdn.microsoft.com/101-L...mples-3fb9811b
    "Le train de tes injures roule sur le rail de mon indifférence."

    "Monde de merde !!"

    Georges Abitbol.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/04/2008, 15h39
  2. Requête SELECT simple assez longue
    Par ctobini dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 22/10/2007, 18h28
  3. [DTD simple] Est-elle correcte ?
    Par FenX. dans le forum Valider
    Réponses: 1
    Dernier message: 21/08/2007, 09h47
  4. requête SQL simple
    Par Echizen1 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 20/09/2006, 14h34
  5. [Débutant] Requête statistique simple
    Par drthodt dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 14/10/2005, 09h50

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