【发布时间】:2015-07-12 13:28:57
【问题描述】:
我正在尝试建立一个多选的管理员用户来在已分配或未分配之间切换。一切似乎都是正确的,除了它不喜欢我试图将真或假分配给UsersInRoleViewModel 的IsInRole 属性的位置。
错误是:
运算符“==”不能应用于“字符串”和“System.Linq.IQueryable”类型的操作数
感谢任何帮助!
public ActionResult EditRoles()
{
// AdminUsers
var adminId = db.Roles.Where(r => r.Name == "Administrator").Select(r => r.Id);
var users = db.Users.Select(u => new UsersInRoleViewModel
{
UserId = u.Id,
DisplayName = u.DisplayName,
IsInRole = u.Roles.Where(r => r.RoleId == adminId)
});
var adminUsers = users.Where(u => u.IsInRole).Select(n => n.UserId).ToArray();
var adminMultiSelect = new MultiSelectList(users, "Id", "DisplayName", adminUsers);
var model = new UserSelectListsViewModel { AdminUsers = adminMultiSelect, SelectedAdmins = adminUsers, DevUsers = null, PMUsers = null, SubUsers = null };
return View(model);
}
【问题讨论】:
-
您正在分配一个枚举值,它需要一个布尔值(大概)。
IsInRole应该属于哪个角色? -
与'Administrator'关联的角色表中的id
标签: asp.net-mvc linq