linq - Asp.Net Identity find users not in role -
i need find users dont't contain role, using asp.net identity.
far have not working.
(from role in context.roles userroles in role.users join in context.users on us.id equals userroles.userid role.name <> "somerole" select us.username)
this give me list of users includes users in role "somerole".
looks need type of not in sub query?
here sql code works still linq query if possible.
select distinct a.username aspnetusers inner join aspnetuserroles ur on ur.userid = a.id inner join aspnetroles r on r.id = ur.roleid not exists( select aspnetuserroles ur1 on ur1.userid = a.id inner join aspnetroles r1 on r1.id = ur1.roleid r1.name = 'somerole')
well have working solution not pretty , i'm sure can written better.
(from role in context.roles userrole in role.users join user in context.users on us.id equals userrole.userid not ( role1 in context.roles userrole1 in role1.users join user1 in context.users on user1.id equals userroles1.userid role1.name = "somerole" select user1.id).contains(user.id) select user.username).distinct()
in c# can users not in role this:
var role = context.roles.singleordefault(m => m.name == "role"); var usersnotinrole = context.users.where(m => m.roles.all(r => r.roleid != role.id));
Comments
Post a Comment