Descomplicando o Dapper com .Net Core

Rodolfo dos Santos Pinto
Jul 29 · 4 min read

Introdução

No artigo de hoje vamos demonstrar como utilizar o Dapper em nosso projeto .net core, realizando um CRUD completo e descomplicando esse o Micro ORM.

Mão na Massa

Primeiramente vamos utilizar o projeto criado no nosso ultimo artigo, é possível fazer o clone da api no meu GitHub ;)

Com a Api em mãos vamos começar, no projeto Repository Instale a biblioteca Nuget “Dapper”.

https://www.nuget.org/packages/Dapper/1.60.6

https://dapper-tutorial.net/

Agora que temos instalado o dapper em nossa repository, para realizar a conexão com o banco de dados vamos utilizar o Design Patterns Factory, pois hoje estamos trabalhando com o Sql Server, mas se eu precisar alterar para o MySql é só criar uma nova Factory e nossa aplicação não irá quebrar e será mais simples de realizar essa re estruturação.

Na Repository vamos criar a Interface IConnectionFactory onde terá um método chamado Connection e irá me retornar um IDbConnection.

Vamos criar nossa classe DeafultSqlConnectionFactory e herdar a interface criada.

No método Connection vamos implementar a conexão com nosso banco de dados.

Feito isso nossa DeafultSqlConnectionFactory já está criada.

Agora em nossa classe HeroRepository vamos criar um construtor e receber a interface IConnectionFactory.

Agora que já criamos nossa factory para criar a conexão com o banco de damos, vamos realizar o acesso aos dados utilizando o Dapper.

Primeiro vamos criar nossos contratos na Interface IHeroRepository

Feito isso vamos implementar a classe HeroRepository:

GetAllHeros:

Obs: Podemos mapear nosso Objeto no QueryAsync<>, ou podemos utilizar o Dynamic e fazer a conversão no comento de montar o objeto Hero.

Get Hero

Insert Hero

Update Hero

Delete Hero

Note que conseguimos utilizar os comandos Query mapeando o objeto desejado e Execute para executar comando no banco de Dados.

Não vamos esquecer de adicionar a injeção de dependência lá no Startup.cs

Feito isso é só criar os respectivos métodos nas camadas à cima, como aprendemos no artigo passado, referenciado no começo desse conteúdo.

Testes

Chegou a hora de testar, vamos utilizar o postman para testar nossos endpoints:

Insert Hero
Get All Heroes
Update Hero
Delete Hero

O código está no GitHub confere lá:

JunDevelopers

O JunDevelopers é um grupo de estudos com sede em Jundiaí — SP. Nosso foco é promover o networking e disseminar o conhecimento e inclusão em desenvolvimento de software e tecnologia.

Rodolfo dos Santos Pinto

Written by

.NET Foundation | .Net Developer | Writer | Technology for Love | #Core #DevOps #Azure #NetCore

JunDevelopers

O JunDevelopers é um grupo de estudos com sede em Jundiaí — SP. Nosso foco é promover o networking e disseminar o conhecimento e inclusão em desenvolvimento de software e tecnologia.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade