简体   繁体   English

IQueryable的 <T> 按ID列表过滤

[英]IQueryable<T> filtering by a list of IDs

Let's say we have an IQueryable<T> . 假设我们有一个IQueryable<T> the Where clause can filter by single ID values, but how can I return an IQueryable based on a list of IDs? Where子句可以按单ID值过滤,但如何根据ID列表返回IQueryable

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

Get data from tblSearches where seaUserId is in IDs list: 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);
    }             
}

你可以使用Contains

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM