IQueryable <T>按ID列表过滤

JGi*_*tin 11 c# iqueryable

假设我们有一个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,其中seaUserIdIDs列表:

[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)


Adi*_*dil 6

你可以使用Contains

var iq = db.tblSearches.Where(x => Ids.Contains(x.seaUserId));
Run Code Online (Sandbox Code Playgroud)