diff --git a/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Services/Sys/UserService.cs b/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Services/Sys/UserService.cs index f995f012..42b5d001 100644 --- a/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Services/Sys/UserService.cs +++ b/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Services/Sys/UserService.cs @@ -231,18 +231,21 @@ public sealed class UserService( public async Task> PagedQueryAsync(PagedQueryReq req) { req.ThrowIfInvalid(); - var listUserExp = req.GetToListExp() ?? _listUserExp; - var select = await QueryInternalAsync(req, listUserExp == _listUserExp).ConfigureAwait(false); - var list = await select.Page(req.Page, req.PageSize) - #if DBTYPE_SQLSERVER - .WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait) - #endif - .Count(out var total) - .ToListAsync(listUserExp) - .ConfigureAwait(false); - return new PagedQueryRsp(req.Page, req.PageSize, total - , list.Select(x => x with { Roles = x.Roles.OrderBy(y => y.Sort).ThenBy(y => y.Id).ToList() }) - .Adapt>()); + var listUserExp = req.GetToListExp() ?? _listUserExp; + var includeRoles = listUserExp == _listUserExp; + var select = await QueryInternalAsync(req, includeRoles).ConfigureAwait(false); + IEnumerable list = await select.Page(req.Page, req.PageSize) + #if DBTYPE_SQLSERVER + .WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait) + #endif + .Count(out var total) + .ToListAsync(listUserExp) + .ConfigureAwait(false); + if (includeRoles) { + list = list.Select(x => x with { Roles = x.Roles.OrderBy(y => y.Sort).ThenBy(y => y.Id).ToList() }); + } + + return new PagedQueryRsp(req.Page, req.PageSize, total, list.Adapt>()); } ///