Unidade de trabalho com implementação de repositório genérico usando .NET Core 6 Web API

Vamos discutir o padrão de design da Unidade de trabalho com a ajuda de um repositório genérico e implementação passo a passo usando a API da Web .NET Core 6.
Agenda
- Padrão de repositório
- Unidade de Trabalho
- Implementação passo a passo
- Visual Studio 2022
- servidor SQL
- SDK do .NET Core 6
- O padrão de repositório é usado para criar uma camada de abstração entre a camada de acesso a dados e a camada de negócios de um aplicativo
- Esse padrão ajuda a reduzir a duplicação de código e segue o princípio DRY.
- Também ajuda a criar um baixo acoplamento entre vários componentes, quando queremos mudar algo dentro da camada de acesso a dados que o tempo não precisa mudar outra camada onde consumimos essa funcionalidade.
- A separação de interesse torna as coisas mais fáceis de manter o código.
- A implementação de padrões de repositório nos ajuda a escrever casos de teste de unidade de forma eficiente e fácil.
- O padrão de repositório nos ajuda a criar uma abstração, desacoplar o código e evitar código redundante.

- Mas às vezes pode atualizar parcialmente os dados porque quando o aplicativo é enorme e os repositórios compartilham o mesmo contexto de banco de dados em todo o aplicativo e executam operações como inserir, atualizar e ler. Portanto, nesse caso, pode haver uma chance de falha em algumas transações e poucas são executadas com sucesso devido a problemas de simultaneidade. Então, por esse motivo, usamos uma unidade de trabalho para manter a integridade dos dados dentro do aplicativo.
- Além disso, a unidade de trabalho gerencia um banco de dados na memória quando executamos operações CRUD em algumas classes de entidade como uma transação e, se houver algumas operações de banco de dados que falharão, nesse caso, todas as operações serão revertidas.
- Também ajuda a tornar as camadas fracamente acopladas usando injeção de dependência e a seguir os princípios do Test Driven Development (TDD).
Passo 1
Crie uma nova API da Web .NET Core

Passo 2
Configure seu aplicativo

etapa 3
Forneça alguns detalhes adicionais

Estrutura do Projeto

Passo 4
Crie três projetos de biblioteca de classes dentro da solução principal

Passo 5
Em seguida, adicione uma classe de modelo dentro do projeto UnitOfWorkDemo.Core e também adicione algumas interfaces.

ProductDetails.cs
IGenericRepository.cs
IProductRepository.cs
IUnitOfWork.cs
Passo 6
Agora, vamos adicionar uma implementação de todos os repositórios que criamos anteriormente e também criar um DbContextClass dentro dele.

arquivo de projeto
GenericRepository.cs
ProductRepository.cs
UnitOfWork.cs
DbContextClass.cs
Depois disso, crie uma classe de extensão para a qual estamos acostumados a registrar serviços de DI e configure-a dentro do arquivo Program.cs dentro do projeto raiz.
ServiceExtension.cs
Em seguida, adicione a migração e atualize o banco de dados dentro do projeto de infraestrutura usando o seguinte comando
add-migration “v1”
update-database
Em seguida, crie um serviço de produto dentro do projeto Services que injetamos e consumimos dentro do controlador principal

IProductService.cs
ProductService.cs
Passo 6
Agora, criamos um Controlador de Produtos dentro do projeto principal e adicionamos vários endpoints.
ProdutosController.cs
Além disso, adicione uma string de conexão de banco de dados dentro do arquivo appsetting.json
Depois disso, cadastre alguns serviços dentro da classe Program
Por fim, execute o projeto

URL do GitHub
https://github.com/Jaydeep-007/UnitOfWorkDemo
Conclusão
Aqui discutimos padrões de repositório e unidades de trabalho. além disso, os benefícios e a implementação passo a passo usando a API da Web .NET Core.
Codificação feliz!