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 :

[EF] "WHERE IN"


Sujet :

Linq

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 203
    Par défaut [EF] "WHERE IN"
    Bonjour,

    Je cherche à faire l'équivalent de l'expression " where in (value1, value2, ... , valueN)" en linq to entity

    J'ai une "List<string> o_item_id_list" contenant la liste des items que je veux sélectionner.
    J'ai essayé différentes syntaxes dont

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select(item => item).Where(p => o_item_id_list.Contains(p.ItemID))
    => génère une exception

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    (from id in o_item_id_list
    	 from item in DataModel.ItemEntities
    	where item.ItemID == id
    	 select item)
    => fonctionne,mais effectue les requêtes une à une dans la BDD

    Si quelqu'un a une solution je suis preneur

    Merçi

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Avec Linq to Entities, je ne sais pas si ça fonctionne mais as-tu essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var query = from item in DataModel.ItemEntities
                    where o_item_id_list.Contains(item.ItemID)
                    select item;

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 203
    Par défaut
    Oui j'ai essayé,ça génère une exception.
    Le problème c'est que d'après Google le "contains" n'est pas supportè par linq to entity

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 203
    Par défaut
    Solution du « Where In » à la fin du thread

    http://social.msdn.microsoft.com/for...-b7e4a1ab59f0/

  5. #5
    Membre éprouvé
    Avatar de jgard
    Profil pro
    Inscrit en
    Août 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 67
    Par défaut
    Citation Envoyé par Jérôme Lambert Voir le message
    Avec Linq to Entities, je ne sais pas si ça fonctionne mais as-tu essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var query = from item in DataModel.ItemEntities
                    where o_item_id_list.Contains(item.ItemID)
                    select item;
    Si tu transformes ta requête comme suit, ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var query = from item in DataModel.ItemEntities.ToList<typeItemEntities>()
                    where o_item_id_list.Contains(item.ItemID)
                    select item;
    En fait, le Contains ne peut être appliqué sur des types var ou interfaces, il faut des collections "classiques"

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

Discussions similaires

  1. Variable d'une clause where avec quote
    Par kcizth dans le forum Langage SQL
    Réponses: 1
    Dernier message: 17/04/2008, 15h43
  2. Quote et double quote
    Par aktos dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2007, 19h55

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