0

我正在使用linq to ldap生成活动 Active Directory 用户的列表。在这种情况下,我所做的是从列表中排除无用的用户(设备和通用用户)。但是,当我这样做时,我的搜索/过滤器不再返回结果。这是我的代码:

public ActionResult Index(string sortOrder, string currentFilter, string searchString, int?page)
{
    int pageSize = 20;
    int pageNumber = (page ?? 1);
    var user = context.Query<ADUser>().ToList().Where
        (u => u.FirstName != null 
        && u.LastName != null
       && !u.DistinguishedName.Contains("ADGROUP1")
       && !u.DistinguishedName.Contains("ADGROUP2"));
     if (searchString != null)
     {
        page = 1;
     }
     else
     {
        searchString = currentFilter;
     }

     ViewBag.CurrentFilter = searchString;

     if (!String.IsNullOrEmpty(searchString))
     {
        user = user.Where(y => y.FirstName.Equals(searchString)
            || y.FirstName.Contains(searchString)
            || y.LastName.Equals(searchString)
            || y.LastName.Contains(searchString))
            .OrderBy(e => e.FirstName);
     }

     switch (sortOrder)
     {
        case "FirstName_desc":
            user = user.OrderByDescending(e => e.FirstName);
            break;
        default:
            user = user.OrderBy(e => e.FirstName);
            break;
     }

     return View(user.ToPagedList(pageNumber,pageSize));
 }

我无法理解的部分是当我对上面的代码进行以下更改时:

改变

var user = context.Query<ADUser>().ToList().Where

var user = context.Query<ADUser>().Where
//and remove the following code
&& !u.DistinguishedName.Contains("ADGROUP1")
&& !u.DistinguishedName.Contains("ADGROUP2"));
//finally add the following
return View(user.ToList().ToPagedList(pageNumber,pageSize));

我可以使用搜索功能按计划工作。我错过了什么?

4

0 回答 0