2012-12-02 17 views
8

Diciamo che abbiamo un IQueryable<T>. la clausola Where può filtrare in base a valori ID singoli, ma come posso restituire uno IQueryable in base a un elenco di ID?IQueryable <T> filtraggio da un elenco di ID

[TestMethod] 
public void TestIQueryableWithList() 
{ 
    int ID1 = 1; 
    List<int> IDs = new List<int> { 1, 3, 4, 8 }; 

    using (var db = new SellooEntities())    
    { 
     // works fine as single value 
     var iq = db.tblSearches.Where(x => x.seaUserId == ID1); 

     // how can i do it to check for all the IDs ?? 
     foreach(int ID in IDs) 
     { 
      // this obviously wont work 
      var iq = db.tblSearches.Where(x => x.seaUserId == ID); 
     } 
    }    
} 

risposta

9

dati otteniamo da tblSearches dove seaUserId è nella lista IDs:

[TestMethod] 
public void TestIQueryableWithList() 
{ 
    int ID1 = 1; 
    List<int> IDs = new List<int> { 1, 3, 4, 8 }; 

    using (var db = new SellooEntities())    
    { 
     var iq = db.tblSearches.Where(x => IDs.Contains(x.seaUserId); 
    }    
} 
5

È possibile utilizzare Contains

var iq = db.tblSearches.Where(x => Ids.Contains(x.seaUserId) == ID); 
Problemi correlati