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 :

LINQ avec plusieurs clauses WHERE et C#


Sujet :

Linq

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut LINQ avec plusieurs clauses WHERE et C#
    Bonjour,
    Je dois récupérer les élements d'une Table en fonction d'une recherche effectuée dans une Vue. J'ai :
    - une Table MesDonnees (avec les colonnes id, Titre, Description, Date, etc )
    - une Vue MesDonneesVue (avec les colonnes id, TitreTraite, DescriptionTraitee)

    Dans ma méthode C# j'ai en paramètre une liste de mots List<string> listeMots.
    J'aimerais récupérer les éléments de la table MesDonnees contenant tous les mots de la liste listeMots, soit dans la colonne TitreTraite soit dans la colonne DescriptionTraitee.
    Je n'arrive pas à écrire cette requête en LINQ to SQL
    Si quelqu'un peut m'aider...
    Merci beaucoup
    Cedric

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Peut-on voir ce que t'as commencé à écrire au moins ?

  3. #3
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    A vue de nez, je dirais quelque chose comme :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var result = MesDonnees .Where(s => ((listeMots.Count(l => s.TitreTraite .Contains(l)) == listeMots.Count) || (listeMots.Count(l => s.DescriptionTraitee.Contains(l)) == listeMots.Count));

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    J'ai écrit ça. N'ayant pas réussi à le faire en une seule requête, j'ai voulu le faire en 2 mais ça ne marche pas non plus
    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 requeteRecherche = from maVue in _context.MesDonneesVue 
                                          select maVue 
    foreach (string motCle in listeMots)
    {
    	requeteRecherche = requeteRecherche.Where(p => p.TitreTraite.Contains(motCle) || p.DescriptionTraitee.Contains(motCle));
    }
     
    var requeteResultat = from annonce in _context.MesDonnees 
                                      select annonce;
    foreach (MesDonneesVue  mesDonneesVue  in requeteRecherche)
    {
    	requeteResultat = requeteResultat.Where(p => p.ID.Equals(mesDonneesVue .ID));
    }
    C'est au niveau de ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach (MesDonneesVue  mesDonneesVue  in requeteRecherche)
    {
    	requeteResultat = requeteResultat.Where(p => p.ID.Equals(mesDonneesVue .ID));
    }
    que ça donne un résultat faux.
    Mais j'aimerais quand arriver à le faire en une seule fois.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    GuruuMeditation, ça ne peut pas marcher puisque qu'à aucun moment tu mentionnes MesDonneesVue

  6. #6
    Invité
    Invité(e)
    Par défaut
    Déjà peut-on savoir ce qui différencie MesDonnees et MesDonneesVue ?
    Une vue est toujours censée faciliter l'écriture des requêtes. Alors je trouve bizarre que tu ais besoin à la fois de MesDonnees et MesDonnesVue dans une seule et même requête. ça n'a aucun sens s'il se trouve que MesDonneesVue se base déjà sur MesDonnees.

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

Discussions similaires

  1. ORACLE v. 9 : Vue avec des clauses WHERE
    Par soffinette dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/02/2007, 14h11
  2. ORACLE 9.2 : Création d'une vue avec plusieurs clauses WHERE
    Par soffinette dans le forum Administration
    Réponses: 4
    Dernier message: 01/02/2007, 10h51
  3. Insert avec une clause where !?
    Par Thomad dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 04/08/2006, 09h55
  4. Requête avec multiple clause where
    Par pgenet dans le forum Requêtes
    Réponses: 3
    Dernier message: 07/03/2006, 13h59
  5. [super requete] Dumper un model avec une clause where
    Par elievar dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/03/2005, 17h05

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