Olá Adrian
Trabalhar com múltiplos schemas no Identity de forma dinâmica pode ser um desafio, mas é possível realizar essa implementação. Uma maneira de fazer isso é utilizando o recurso de "chaveamento de esquema" do Identity.
Primeiramente, você precisará definir as configurações de conexão para cada esquema no arquivo de configuração do seu projeto. Por exemplo, você pode ter uma seção no arquivo appsettings.json para cada esquema, com as informações de conexão correspondentes.
Em seguida, você pode criar uma classe derivada da classe IdentityDbContext, responsável por gerenciar as operações de autenticação e autorização do Identity. Nessa classe, você pode sobrescrever o método OnConfiguring para definir qual esquema será utilizado com base em alguma lógica específica. Por exemplo:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (algumaLogica)
{
optionsBuilder.UseSqlServer(Configuration.GetConnectionString("EsquemaAdm"));
}
else
{
optionsBuilder.UseSqlServer(Configuration.GetConnectionString("EsquemaUsuario"));
}
}
Dessa forma, você pode definir a lógica que irá determinar qual esquema será utilizado para cada login. Por exemplo, você pode verificar se o login pertence à entidade 'adm' ou 'usuario' e, com base nessa informação, definir o esquema correspondente.
Lembrando que esse é apenas um exemplo de como você pode abordar esse problema. A implementação exata pode variar dependendo dos detalhes do seu cenário.
Espero ter ajudado e bons estudos!