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

C# Discussion :

Equivalent d'une requete SQL sur EntityFrameWork


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Points : 63
    Points
    63
    Par défaut Equivalent d'une requete SQL sur EntityFrameWork
    Bonjour,
    voici une requete en langage SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select *
    from ERP_PROD..ER2.GCFAM_CPTA
    where FAMC_TYPE = 'T'
    order by
    case
    when FAMC_CODE like 'C%' then 0
    else 1 end;
    je voudrais faire la même chose avec EntityFrameWork dans un projet WPF :

    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
     public static void GetFam_Cpta(ComboBox cb)
            {
                using (OracleEntities dc = new OracleEntities())
                {
                    cb.ItemsSource = (from f in dc.GCFAM_CPTA.AsEnumerable()
                                      where f.FAMC_TYPE == "T"
                                      orderby // comment ecrire le case when de SQL ??
                                      select new
                                      {
                                          f.FAMC_CODE,
                                          f.FAMC_LIBELLE,
                                          t = string.Join("-", f.FAMC_CODE, f.FAMC_LIBELLE)
                                      }).ToList();
                    cb.DisplayMemberPath = "t";
                    cb.SelectedValuePath = "FAMC_CODE";
                    dc.Dispose();
                }
            }
    Merci de votre aide.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Tu peux peut-être utiliser une expression lambda dans le tri:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ...
    (from f in dc.GCFAM_CPTA.AsEnumerable()
                                      where f.FAMC_TYPE == "T"
                                      orderby // comment ecrire le case when de SQL ??
                                      select new
                                      {
                                          f.FAMC_CODE,
                                          f.FAMC_LIBELLE,
                                          t = string.Join("-", f.FAMC_CODE, f.FAMC_LIBELLE)
                                      }).ToList().sortby(x => t.famc_code.begins("C") ? 1 else 0);
    Bon, j'avoue qu'il faut vérifier où mettre le tri, mais l'idée est là. Tu devrais pouvoir faire la même chose directement dans la requête, à voir.

    Tatayo.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Points : 63
    Points
    63
    Par défaut
    C'est parfait mereci beaucoup !

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2010
    Messages : 185
    Points : 167
    Points
    167
    Par défaut
    Salut,
    Moi j'utilise l'autre forme EF et ça pourrait donner quelque chose comme :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cb.ItemsSource = dc.GCFAM_CPTA.Where(f => f.FAMC_TYPE == "T").OrderBy(f => f.FAMC_CODE.StartWith("C") ? 0 : 1).Select(......

    Je n'ai pas essayé mais l'écriture génère pas d'erreur.

    Bon courage

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/03/2008, 14h26
  2. Réponses: 23
    Dernier message: 19/09/2006, 11h33
  3. [VB6] Ecrire une requete SQL sur plusieurs lignes!
    Par big x dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 08/05/2006, 16h28
  4. Ecrire une requete SQL sur plusieurs lignes
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 15/11/2004, 14h47
  5. Réponses: 2
    Dernier message: 03/05/2004, 12h13

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