Iniciando o Projeto
Banco de Dados
Banco de Dados SQL Server
O banco de dados SQL Server será disponibilizado a partir de container Docker.
Será utilizado o Subsistema do Windows para Linux
Acessar o Microsoft Artifact Registry, pesquisar por mssql e escolher a imagem. Neste caso, foi escolhida a image 2025-latest

Abrir o terminal e executar o wsl:
> wsl
$Em seguida baixar a imagem escolhida:
$ docker pull mcr.microsoft.com/mssql/server:2025-latest
2025-latest: Pulling from mssql/server
95d90ad22b86: Pull complete
a640612140d3: Pull complete
ae76d5a26e47: Pull complete
Digest: sha256:54b23ca766287dab5f6f55162923325f07cdec6ccb42108f37c55c87e7688ebd
Status: Downloaded newer image for mcr.microsoft.com/mssql/server:2025-latest
mcr.microsoft.com/mssql/server:2025-latestConferir se a imagem foi baixada:
$ docker images | grep 2025
mcr.microsoft.com/mssql/server 2025-latest 55c3fe0f8428 6 weeks ago 1.79GBExecutar o container:
$ docker run -d \
--name sqlserver2025 \
-e "ACCEPT_EULA=Y" \
-e "SA_PASSWORD=Sql@2025Secure!" \
-p 1433:1433 \
mcr.microsoft.com/mssql/server:2025-latest
8105494a92177bfde03fde9a4d40a1c894cc1f1d3f021fe4b052efb314fa07f5Conferir se o container está sendo executado:
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8105494a9217 mcr.microsoft.com/mssql/server:2025-latest "/opt/mssql/bin/laun…" 29 seconds ago Up 28 seconds 0.0.0.0:1433->1433/tcp sqlserver2025A partir do Microsoft SQL Server Management Studio ou outra ferramenta acessar o banco de dados disponibilizado pelo container:


Mais referências:
Pode ser executado outro banco de dados e utilizado outro serviço para conexão ao banco de dados, pois o Repository Pattern não está atrelado ao Entity Framework nem ao banco de dados.
Criação do Projeto
Preparar o ambiente onde o projeto será criado. Neste caso foi utilizado o diretório C:\Dev\RepositoryStore\ para criar o projeto.
Criar o arquivo de configuração Global JSON
Listar os Software Development Kit (SDKs) do .NET instalados:
PS C:\Dev\RepositoryStore> dotnet --list-sdks
6.0.428 [C:\Program Files\dotnet\sdk]
9.0.100-preview.2.24157.14 [C:\Program Files\dotnet\sdk]
9.0.307 [C:\Program Files\dotnet\sdk]
10.0.100 [C:\Program Files\dotnet\sdk]Criar o arquivo de configuração do .NET para definir qual SDK do .NET será usado:
PS C:\Dev\RepositoryStore> dotnet new globaljson --sdk-version 10.0.100Verificar arquivo de configuração:
PS C:\dev\RepositoryStore> cat .\global.json
{
"sdk": {
"version": "10.0.100"
}
}Criação do projeto:
PS C:\Dev\RepositoryStore> dotnet new web
O modelo "ASP.NET Core Vazio" foi criado com êxito.
Processando ações pós-criação...
Restaurando C:\Dev\RepositoryPattern\RepositoryStore\RepositoryStore.csproj:
A restauração foi bem-sucedida.Acesso ao diretório do projeto criado:
Instalação dos Pacotes
Adicionar os pacotes necessários para trabalhar com o Repository Pattern. Será utilizado o Entity Framework, mas pode-se utilizar outras ferramentas.
Instalação dos pacotes:
Microsoft.EntityFrameworkCore.SqlServer
Instalação
O que ele é, de verdade
O Microsoft.EntityFrameworkCore.SqlServer é o provider de banco de dados do Entity Framework Core para SQL Server.
Ele é a implementação concreta de persistência que permite ao Entity Framework comunicar-se corretamente com o SQL Server. Arquiteturalmente, pertence exclusivamente à camada de infraestrutura.
Esse pacote nunca aparece no domínio nem nas interfaces de repositório.
Responsabilidades técnicas
Na prática, o provider é responsável por:
traduzir expressões LINQ → T-SQL
mapear tipos do .NET para o SQL Server:
datetime2nvarchardecimal
gerenciar:
identityesequencestransações
locking e concorrência
aplicar otimizações específicas do SQL Server
Tudo isso é detalhe técnico de persistência.
Dentro do Repository Pattern
Onde ele deve estar
Projeto de Infraestrutura
Camada de persistência concreta
Implementação real dos repositórios
Onde ele não deve aparecer
Interfaces de repositório
Camada de domínio
Application Services / Use Cases
Exemplo conceitual
O domínio não sabe que o banco é SQL Server. Se amanhã a persistência mudar para PostgreSQL, o contrato permanece o mesmo.
Resumo direto
É o provider do EF Core para SQL Server
Implementação concreta de persistência
Vive na infraestrutura
Não vaza para o domínio
Não define contratos
No Repository Pattern, ele é meio, não regra.
Microsoft.EntityFrameworkCore.Design
Instalação
O que ele é, de verdade
O Microsoft.EntityFrameworkCore.Design é um pacote de tooling do Entity Framework Core.
Ele não é runtime. Ele existe exclusivamente em tempo de design para dar suporte ao desenvolvedor durante a construção e manutenção da infraestrutura de dados.
Esse pacote não participa da execução da aplicação e não faz parte do Repository Pattern em funcionamento.
Para que ele serve
O pacote fornece ferramentas utilizadas durante o desenvolvimento, como:
Add-MigrationUpdate-DatabaseScaffold-DbContextgeração e manutenção de migrations
versionamento do schema do banco
Ou seja:
ajuda o desenvolvedor
apoia a evolução da infraestrutura
não interfere no fluxo da aplicação
Dentro do Repository Pattern
Uso legítimo
evoluir o schema do banco
versionar estrutura de dados
gerar código inicial da camada de infraestrutura
Uso ilegítimo
referenciar no domínio
considerar parte da arquitetura do pattern
tratar como dependência de runtime
Ponto essencial
O Microsoft.EntityFrameworkCore.Design:
não participa do repositório em execução
não define contratos
não influencia regras de negócio
existe apenas para criar e manter a implementação concreta da persistência
Resumo direto
pacote de tooling
uso em tempo de design
suporte ao desenvolvedor
não faz parte do Repository Pattern em runtime
No contexto do Repository Pattern, ele apoia a construção da infraestrutura, mas não faz parte do funcionamento do repositório.
Neste momento, isso é tudo o que é necessário para dar início ao projeto.
Atualizado