假设我们有一个IQueryable<T>.该Where子句可以按单个ID值进行过滤,但如何IQueryable根据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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
Zbi*_*iew 16
从获得的数据tblSearches,其中seaUserId在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);
}
}
Run Code Online (Sandbox Code Playgroud)
你可以使用Contains
var iq = db.tblSearches.Where(x => Ids.Contains(x.seaUserId));
Run Code Online (Sandbox Code Playgroud)