var usersFilterRoles = from u in dataContext.aspnet_Users join p in dataContext.Partners on u.UserId equals p.Id where u.aspnet_Roles.Contains(roles)
не работает. Роли - я делаю RoleId или nameRole
Мне нужно получить пользователей по ролям
Получить все имена пользователей, используя Roles.GetUsersInRole Метод и, если вам нужна дополнительная информация, тогда используйте Membership.GetAllUsers () , чтобы получить всех пользователей из Membership и получить рольпользователи из возврата MembershipUserCollection, использующие linq или loop через MembershipUserCollection и добавляющие в пользовательскую коллекцию;какой метод вам больше нравится.
Membership
MembershipUserCollection
loop
MembershipUserCollection users; string[] usersInRole; rolesArray = Roles.GetAllRoles(); users = Membership.GetAllUsers();
Проверьте пример ссылки метода GetUsersIndRole, чтобы очистить логику.
GetUsersIndRole
Ожидаемый запрос Linq:
string[] usersInRole = Roles.GetUsersInRole("Role"); var users = DataContext.AspnetUsers.Where(usr => usersInRole.Contains(usr.LoweredUserName));
Следуйте этим учебным пособиям и ссылкам для работы с членством. Членство, роли и профиль ASP.NET Как вы управляете ролями / пользователями членства asp.net SQL впроизводство?
Метод Roles.AddUsersToRole
Класс ролей - Методы
Использование поставщика ролей и членства ASP.NET - это путь, но если вы хотите получить пользователей по роли в linq:
var userRoleQuery = from anu in context.AspNetUsers where anu.AspNetRoles.Any(r => r.Id == roleId) select anu.Id
почему бы не использовать System.Web.Security.Roles?
using System.Web.Security; namespace App.SomeName { public class YourClass { public void GetUsers(){ string[] users = Roles.GetUsersInRole("MyRole"); } } }
Это то, что вы хотели сделать?