我使用以下代码允许用户搜索其他注册用户,以便将其添加到朋友列表:
[Authorize(Roles = "RegisteredUsers")] public ActionResult Index(string searchString) { //list of registered users var regUsers = db.Users; if (!String.IsNullOrEmpty(searchString)) { regUsers = regUsers.Where(s => s.User.LastName.Contains(searchString)); } return View(regUsers.ToList()); }
然而,我在第9行得到一个错误regUsers = regUsers.Where(..)
,说:
"无法隐式将类型转换
System.Linq.IQueryable
为System.Data.entity.DbSet
我该如何重用regUsers
变量?
怎么样
IQueryableregUsers = db.Users;
db.Users属于DbSet类型,因此当您进行Where
调用时,它会尝试隐式分配不同类型的值regUsers
,这不起作用 - 因此出错.
编辑:正如其他人所指出的,AsQueryable
可以省略调用.regUsers现在显式为IQueryable类型.