Descomplicando o Dapper com .Net Core
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.

Introdução
No artigo de hoje vamos demonstrar como utilizar o Dapper em nosso projeto .net↳.NET113 conteúdosNovidades do .NET 9 – o tipo genérico OrderedDictionaryDev (Back & Front) · dez 2024Novidades .NET 10: novas formas de uso do .NET CLIDev (Back & Front) · dez 2025Novidades do .NET 5: implementando um proxy reverso com YARP + ASP.NET 5Dev (Back & Front) · nov 2020Ver tudo em Dev (Back & Front) → 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 😉
Estruturando Arquitetura API .Net Core↳Leia tambémEstruturando Arquitetura API .Net Core 2.2Dev (Back & Front) · ago 2019 2.2 Introdução medium.comCom a Api em mãos vamos começar, no projeto Repository Instale a biblioteca Nuget “Dapper”.

Agora que temos instalado o dapper em nossa repository, para realizar a conexão com o banco de dados↳Banco de dados134 conteúdosSQL ou NoSQL: eis a questão!!Data · mar 2020Banco de dados: como organizar e dar segurança para milhões de dados de loteriasData · mai 20215 serviços gratuitos na cloud para bancos de dados PostgresData · fev 2025Ver tudo em Data → 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:



O código está no GitHub confere lá:
https://github.com/Rodolfo1997/HeroAPITemplate








