Trabalhar com o Dapper é um ótimo caminho para quem deseja focar no desempenho e performance de aplicações .NET.
Sendo direto ao ponto, o Dapper.SimpleCRUD é uma biblioteca auxiliar construída sobre o Dapper que adiciona vários aprimoramentos e extensões que nos trazem “qualidade de vida” a pequenas dificuldades encontradas no Dapper “puro”. E para cenários de consulta mais avançadas, o Dapper.SimpleCRUD fornece um sistema de paginação que facilita a construção de pesquisas personalizadas.
Benefícios do Dapper.SimpleCRUD
- Alto desempenho e performático
- Menos linhas de código
- Mapeamento de objetos
- Fácil manuseio de consultas SQL, procedures e functions
- Inserção de dados com o Bulk insert
Utilizar o Dapper.SimpleCRUD facilita ainda mais a criação e manutenção de CRUDs em aplicações .NET.
Pré-requisitos
- Visual Studio 2022 (.NET 6.0)
- Nuget package Dapper.SimpleCRUD
API
O primeiro passo é configurar a classe Program:
Em seguida, é necessário criar a entidade que será a representação da tabela do banco de dados. Neste exemplo utilizaremos a entidade User:
A classe BaseEntity é utilizada como herança em todas as entidades, para padronizar a chave primária e facilitar a utilização dos métodos da classe BaseRepository:
A classe UserRepository contém a seguinte implementação:
Esta classe herda as abstrações genéricas do repositório base (BaseRepository), que contém vários métodos que facilitam ainda mais a utilização:
Já na controller (UserController), é necessário configurar a injeção de dependência da interface IUserRepository para utilização dos métodos de extensão:
Neste exemplo estamos utilizando apenas alguns métodos do repositório UserRepository para demonstração, mas a ideia é utilizar ao máximos todas as abstrações.
Testando
Antes de testar a aplicação, é necessário configurar a connection string do banco SQL no arquivo appsettings.json:
"ConnectionStrings": {
"DefaultConnection": "Data Source=.\\SQLEXPRESS;Database=SampleDapper;Integrated Security=True;MultipleActiveResultSets=true;"
}
Em seguida, ao executar a aplicação, o banco SQL SampleDapper e a tabela User serão criados automaticamente, possibilitando os testes via interface do Swagger:
Finalizando
O Dapper.SimpleCRUD é uma extensão do pacote Dapper para facilitar ainda mais as operações com o banco de dados. Outro ponto interessante, seria explorar algumas das outras bibliotecas de extensão do Dapper, como Dapper.Rainbow ou Dapper.Contrib, mas elas são basicamente as mesmas que Dapper.SimpleCRUD, com pequenas diferenças.
Os detalhes completos deste exemplo você encontra no eu GitHub:
https://github.com/hgmauri/sample-dapper