我正在使用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));
我可以使用搜索功能按计划工作。我错过了什么?