Linq to SQL : WHERE ID in liste
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:
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 !!