1
resposta

Executar Migration Projeto Class Library

como posso fazer para executar as migrations, em projeto class library,

1 resposta

Olá Alex!

Para executar as migrations em um projeto do tipo Class Library no Entity Framework Core, você precisa fazer algumas configurações adicionais, já que o Class Library não possui um contexto de execução próprio. Aqui está um passo a passo que pode te ajudar:

  1. Adicionar um Projeto de Console ou ASP.NET Core: Crie um projeto de Console ou ASP.NET Core na mesma solução onde está sua Class Library. Este projeto será usado para executar os comandos de migration.

  2. Referenciar a Class Library: Adicione uma referência da sua Class Library no projeto de Console ou ASP.NET Core. Isso permitirá que o projeto de Console ou ASP.NET Core acesse o DbContext e as entidades definidas na Class Library.

  3. Configurar o DbContext: No projeto de Console ou ASP.NET Core, configure o DbContext no Startup.cs (para ASP.NET Core) ou diretamente no código do programa (para Console). Aqui está um exemplo de como fazer isso em um projeto de Console:

    class Program
    {
        static void Main(string[] args)
        {
            var optionsBuilder = new DbContextOptionsBuilder<SeuDbContext>();
            optionsBuilder.UseSqlServer("SuaConnectionString");
    
            using (var context = new SeuDbContext(optionsBuilder.Options))
            {
                // Aqui você pode usar o contexto para qualquer operação
            }
        }
    }
    
  4. Executar os Comandos de Migration: Abra o Console do Gerenciador de Pacotes do NuGet no projeto de Console ou ASP.NET Core e execute os comandos de migration normalmente:

    Add-Migration AdicionarColunaAnoLancamento
    Update-Database
    

    Certifique-se de que o projeto de Console ou ASP.NET Core esteja definido como o projeto de inicialização da solução.

  5. Verificar a Migration: Após executar os comandos, verifique se a migration foi criada na Class Library e se o banco de dados foi atualizado conforme esperado.

Espero ter ajudado e bons estudos!