Bonjour à tous !!!

J'ai un petit problème (Oui, sinon je ne posterai pas ici )
Je fais une requête Linq To SQL pour récupérer une liste d'appel.
En fonction des tri que je veux effectuer à cette liste, je fais des WHERE en plus.
Mais je veux faire un WHERE id == [TOUT LES ELEMENTS D'UNE LISTE].
De façon statique, voilà à quoi ressemblerai ce que je voudrai faire:

SELECT ...
FROM ...
WHERE [CONDITIONS]
AND (id == 1 OR id ==2 OR id==3 OR ...)


Voilà ce que j'ai :


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
 
     var q = from p in DbContext.Appels
     where (p.Client.Nom.Contains(Filter) || p.AppelId.ToString().Contains(Filter) || (p.Materiel.Modele1.Nom + " #" + p.Materiel.NumeroSerie).Contains(Filter) || p.ContactClient.Nom.Contains(Filter) || p.ContactClient.Prenom.Contains(Filter) || p.Dossier.Contains(Filter) || p.Client.CodePostal.Contains(Filter) || p.Client.Ville.Contains(Filter) || p.NumDevis.Contains(Filter))
     select p;
 
 
            if (StatutAppel.HasValue)
                q = q.Where(p => p.StatutAppelId == StatutAppel.Value);
 
            if (StatutFacturation.HasValue)
                q = q.Where(p => p.Facturable == StatutFacturation.Value);
 
            if(statutDemande.HasValue)
                q = q.Where(p => p.StatutDemandePiece == statutDemande.Value);
 
            if (statutPro.HasValue)
                q = q.Where(p => p.Depot == statutPro.Value);
         //LIGNE QUI POSE PROBLEME 
         //La ligne qui suit compare les ID étant dans la colonne ClientId à la liste d'id renvoyée par la fonction
         //Il y a une erreur mais c'est le plus parlant pour vous
            if (!statutRegion.Equals(""))
                q = q.Where(p => p.ClientId in GetAllClientIdByRegionLPS(statutRegion)); // GetAllClientIdByRegionLPS(statutRegion) renvoie une liste
 
// RESTE DU CODE ...

Auriez-vous une solution à me proposer ?

Merci d'avance !!