2012-12-02 8 views
8

IQueryable<T>があるとします。 Where句は単一のID値でフィルタリングできますが、IDリストに基づいてIQueryableを返すにはどうすればよいですか?IQueryable <T> 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); 
     } 
    }    
} 

答えて

9

seaUserIdIDsリストであるtblSearchesからデータを取得します。

[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

あなたはContains

var iq = db.tblSearches.Where(x => Ids.Contains(x.seaUserId) == ID); 
を使用することができます
関連する問題