0
hole7 created
Dear all!
I'm using Abp Zero and I want to show all Users along with his Roles (RoleName) but with the current design, I can just see UserRole (RoleId) in User entity (I'm using Include to get UserRole list), but, my problem need to get all Roles that User has been assigned. So, Can anyone help me to figure out how to select a list of role to go with user? I've search on internet for join with EF but couldn't find the answer.
Thanks
1 Answer(s)
-
0
Finally, I found the way to solve this.
var queryUsers = _userRepository.GetAll().Include(u => u.Roles) .OrderBy(input.Sorting) .PageBy(input); var items = (from u in queryUsers join ur in queryUsers.SelectMany(x => x.Roles) on u.Id equals ur.UserId join r in _roleRepository.GetAll() on ur.RoleId equals r.Id group new { u, ur, r } by new { u.Id, u.UserName, u.Name, u.Surname, u.EmailAddress, u.IsEmailConfirmed, u.IsActive, u.LastLoginTime, u.CreationTime } into g select new UserDto() { Id = g.Key.Id, UserName = g.Key.UserName, Name = g.Key.Name, Surname = g.Key.Surname, EmailAddress = g.Key.EmailAddress, IsEmailConfirmed = g.Key.IsEmailConfirmed, IsActive = g.Key.IsActive, LastLoginTime = g.Key.LastLoginTime, CreationTime = g.Key.CreationTime, Roles = g.Select(x => new UserRoleDto() { RoleId = x.r.Id, RoleName = x.r.DisplayName }).ToList() }).ToList();