Obtener usuario con roles asignados

Utilizando la identidad de ASP.NET Core, creo un nuevo usuario conUserManager.CreateAsync() y asignarlos a un rol existente conUserManager.AddToRoleAsync. Esto funciona, ya que la relación entre usuario y rol se almacena enAspNetUserRoles tabla de la base de datos.

Pero cuando busco al usuario usando el UserManager (p. Ej.UserManager.FindByMail() método) entonces elRole la lista esta vacía. También probé elInclude función de EF como esta:

var user = userManager.Users.Include(u => u.Roles).FirstOrDefault(u => u.Email == "[email protected]");

Esto me dio los ID de la tabla de asociación n: m, que no es muy útil ya que necesito los nombres de los roles. Cargarlos usando una segunda consulta tampoco es posible, ya que elRoles El atributo del usuario de identidad es de solo lectura. Esperaría obtener unList<string> de los nombres de roles. No se pudo encontrar ninguna información sobre esto.

Para mí, la única solución parece agregar un atributo personalizado a mi usuario y llenarlos con los datos, que obtengo mediante una segunda consulta. Pero esa no es una buena solución. No puedo creer que ASP.NET Core Identity no tenga una mejor manera de obtener esos datos ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta