2017-09-26 20 views
-2

Je veux sélectionner la liste des enregistrements pour n ids, j'ai la liste des ID et je veux l'employer immédiatement pendant que nous écrivons dans la requête sql choisissons * d'abc où l'identification dans (3,4,6,7,8,14). Comme ça, je veux écrire la requête linq. je l'ai écrit quelque chose comme ceci:Comment puis-je écrire une requête Linq pour obtenir la liste des enregistrements où ID dans (1,2,3,8,23,45)

var mylist = (from log in context.mylog 
         where logIdList.Contains(log.Id) 
         select log).ToList(); 

mais cela me donne l'erreur.

Remarque: logIdList est la liste des ID.

+3

Quelle erreur vous faites face? –

Répondre

0

Voulez-vous quelque chose comme:

var myList = from log in context.mylog 
      join id in logIdList on log.Id equals id 
      select log; 
0

Vérifiez la météo cette solution fonctionne. Je ne l'ai pas essayé. Donc pas sûr.

var MyList = Context.MyLog.Where(x => LogIdList.Contains(x.Id)).ToList(); 

Espérons que cela aide.

+1

Est-ce que cela compile? Je pense que ce n'est pas –

+0

@GiladGreen c'était une erreur. Pourriez-vous regarder maintenant? –

+1

Je ne suis pas sûr que l'une de ces réponses soit pertinente car je ne sais pas quelle est l'erreur que le PO obtient –

0

Essayez de réécrire votre

where logIdList.Contains(log.Id) 

à

where logIdList.Any(x=> x == log.Id)