Unit of Work

O famoso Unit of Work promete deixar seu código mais organizado. Ele junta várias operações em uma única transação. Se algo der errado, tudo falha de uma vez, o que ajuda a evitar problemas maiores.

Repository Pattern

O Repository Pattern facilita o acesso a dados. Ele centraliza funções comuns de acesso a dados, ajudando a separar a infraestrutura da lógica do negócio.

Benefícios

Aqui estão os benefícios:

  • Facilita a reutilização do código.
  • Criar um Repository Pattern com Generics no .NET simplifica operações básicas.
  • O Unit of Work ajuda a evitar problemas na leitura do banco de dados.
  • Mantém mais controle na aplicação, evitando travamentos no banco de dados.

E o MongoDB onde fica?

Controlar transações no .NET com MongoDB ainda não é possível. Como o MongoDB é cada vez mais usado, adaptamos como dá.

Implementação

Você vai precisar dos componentes MongoDB.Driver e ServiceStack.Core.

Para instalá-los, vá para o Package Manager (View > Other Windows > Package Manager Console) e digite:

Install-Package ServiceStack.Core
Install-Package MongoDB.Driver

Generic Repository

Crie o Repository Pattern com uma classe abstrata usando Generics.

Interface

// Interface para seus repositórios genéricos.

Implementação

// Implementação inicial do Repository Pattern.

Cada Model terá sua própria implementação. Vamos fazer com a classe Product:

// Implemente a classe Product como exemplo.

Unit of Work

Para o Unit of Work, é necessário um Mongo Context que liga o Repository ao UoW.

Mongo Context

// Defina o Mongo Context aqui.

UoW Implementação

// Implementação do Unit of Work.

Configurando o Startup.cs

Ajuste o Startup.cs do projeto e adicione as configurações do Dependency Injection.

// Configurações no Startup.cs.

Download

Os códigos do projeto estão no GitHub.

Feedback!

Sua opinião sobre essa experiência é bem-vinda. Deixe seu comentário!