Migrations
Este guia descreve o processo completo de configuração da Connection String, configuração do DbContext, criação e aplicação de Migrations usando Entity Framework Core com SQL Server 2025 em Docker.
Configurar a Connection String no appsettings.json
Definir a String de Conexão apontando explicitamente para o IP, evitando dependência de resolução de localhost.
{
"ConnectionStrings": {
"DefaultConnection": "Server=127.0.0.1,1433;Database=repository-pattern;User ID=sa;Password=Sql@2025Secure!;Encrypt=True;TrustServerCertificate=True;"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}Configurar o DbContext no Program.cs
Após a criação do builder, configurar o DbContext utilizando a Connection String definida no appsettings.json:
Com isso, o AppDbContext passar a estar disponível para injeção de dependência em toda a aplicação.
Limpar e reconstruir o projeto
Antes de criar as migrations, limpar e reconstruir o projeto para garantir que não exista lixo de build.
Comandos:
Exemplo de execução:
Saída esperada: build construído com êxito.
Verificar se o SQL Server está em execução no Docker
Considerando que o SQL Server foi configurado previamente em Docker, é necessário verificar se o container está ativo.
Será iniciado o processo de migração e para isso o banco de dados precisa estar sendo executado. Considerando que o banco de dados está sendo executado em Docker e foi configurado anteriormente no início do projeto, verificar se ele está sendo executado, se ele existe, caso esteja parado inicia-lo, verificar sua execução.
Caso o container esteja parado, inicia-lo:
Adicionar ao Migrations com a execução de dotnet ef migrations add
O container deve estar exposto na porta 1433.
Criar a migration inicial
Com o banco em execução e o projeto compilando corretamente, criar a migration:
Exemplo de execução:
Após a execução será criado o diretório Migrations, contendo os seguintes arquivos:
AppDbContextModelSnapshot
YYYYMMDDHHMMSS_v1

Atualizar a ferramenta dotnet-ef
Caso apareça o aviso de versão entre runtime e ferramentas, atualize o dotnet-ef com os comandos:
Aviso:
Exemplo de atualização do dotnet-ef:
A versão deve corresponder ao runtime utilizado.
Validar conexão com o SQL Server via sqlcmd
Para validar conectividade e TLS, utilize o sqlcmd:
Exemplo de execução com execução de comando simples:
Isso confirma conectividade, autenticação e criptografia.
Caso necessário:
Atualizar o Microsoft ODB Driver for SQL Server
Instalar o SqlCmd
Instalar o WinGet
Documentação oficial da Microsoft deve ser usada como referência.
Aplicação a migration no banco de dados
Com tudo validado, aplique a migration:
Exemplo de aplicação:
Durante o processo:
O banco de dados repository-pattern é criado
A tabela __EFMigrationsHistory é gerada
As tabelas definidas no modelo são criadas
A migration é registrada
Resultado final
O banco de dados e suas tabelas foram criados com sucesso.
Neste cenário, o banco está sendo gerenciado e visualizado utilizando o Microsoft Azure Data Azure.

Atualizado