4
respostas

No migrations configuration type was found in the assembly 'UsuariosAPI'.

Olá, pessoal!

O meu projeto está rodando bem, sem bugs, porém na hora de executar o Add-Migration "Criando Usuario"

Ele me reportou o erro: Add-Migration : O termo 'Add-Migration' não é reconhecido como nome de cmdlet, função, arquivo de script ou programa operável. etc

Verifiquei as instalações do Entity Framework e, além do Microsoft.EntityFrameworkCore, sugerido na aula, instalei o EntityFramework 6.4.4. Para testar se conseguiria progresso.

Daí a msg passou a ser: No migrations configuration type was found in the assembly 'UsuariosAPI'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration). Como estou usando o Visual Studio 2022, tentei o comando Enable-Migration, e ele me reportou o erro: No context type was found in the assembly 'UsuariosAPI'.

Podem me ajudar?

4 respostas

Atualizando: Refiz as video aulas, refazendo o projeto e reinstalando todos os pacotes. Esse erro parou de ser apresentado, creio que tenha funcionado. Ainda estou tendo problemas no Add-Migration, mas com a msg: Unable to connect to any of the specified MySQL hosts Parece ser um problema no SQL. Como o assunto é diferente, abri outro tópico, mas dando certo, coloco a solução aqui tb, para caso alguém tenha os mesmos problemas que eu. Abçs!

Olá, Paulo! Boa tarde, tudo bom?

Entendo que você esteja enfrentando dificuldades ao executar o comando Add-Migration no seu projeto .NET 6. Esse erro geralmente ocorre quando o Entity Framework não consegue encontrar a configuração de migrações no seu projeto.

Uma possível solução para esse problema é verificar se você possui uma classe que herda de DbContext no seu projeto. Essa classe é responsável por representar o contexto do banco de dados e deve ser configurada para permitir as migrações.

Por exemplo, suponha que você tenha uma classe chamada MeuContexto que herda de DbContext. Nesse caso, você precisaria adicionar a seguinte linha de código no método OnConfiguring da classe MeuContexto:

options.UseSqlServer("sua_string_de_conexão");

Certifique-se de substituir "sua_string_de_conexão" pela string de conexão correta para o seu banco de dados.

Depois de adicionar essa configuração, tente executar novamente o comando Add-Migration "Criando Usuario" e veja se o erro persiste.

Caso o problema ainda persista, sugiro que você verifique se todas as dependências do Entity Framework estão corretamente instaladas no seu projeto. Certifique-se de ter instalado o pacote Microsoft.EntityFrameworkCore.Tools para habilitar os comandos de migração.

Espero que essas sugestões possam te ajudar a resolver o problema. Lembre-se de sempre verificar a documentação oficial do Entity Framework e buscar por soluções específicas para a versão que você está utilizando.

Espero ter ajudado e bons estudos!

Olá, André! Obrigado pela resposta.

Quanto à instalação dos pacotes, verifiquei e estão OK.

No caso, a classe que herda de DBContext seria UsuarioDbContext. O Código dela está assim:

namespace UsuariosApi2.Datas
{
    public class UsuarioDbContext : IdentityDbContext<Usuario>
    {
        public UsuarioDbContext
            (DbContextOptions<UsuarioDbContext>opts):base(opts)
            {

            }

    }
}

Pelo que entendi nas aulas, essa chamada foi colocada no próprio Program.cs: Acho q seria essa aqui, não?

var connString = builder.Configuration.GetConnectionString("UsuarioConnection");

builder.Services.AddDbContext<UsuarioDbContext>(opts =>
{
    opts.UseMySql
    (connString, ServerVersion.AutoDetect(connString));
});

builder.Services
    .AddIdentity<Usuario, IdentityRole>()   //informa para ele definir as regras de identidade
    .AddEntityFrameworkStores<UsuarioDbContext>()   //Informa qual DBContext vai usar
    .AddDefaultTokenProviders();    //utilizado para autenticação

Segue tb a minha string de conexão no appsettings.json:

 "ConnectionStrings": {
    "UsuarioConnection": "server=localhost;database=usuariodb;user=root;password=root"
  }

Obs.: A minha msg agora é Unable to connect to any of the specified MySQL hosts.