
Este novo artigo sobre Dapper traz exemplos de uso deste micro-ORM com PostgreSQL e MySQL, em conjunto com o package Dapper.Contrib (este último sendo uma extensão do Dapper, que facilita a implementação de operações de CRUD). Além disso, foram incluídas aqui, orientações a respeito de quais providers ADO.NET empregar ao optar estes SGBDs.
Caso tenha interesse em conhecer mais sobre o Dapper, consulte também os seguintes artigos:
- Dapper: exemplos de utilização em ASP.NET Core e .NET Full
- Dapper: relacionamentos Um-para-Um e Um-para-Muitos (exemplos em ASP.NET Core)
- Dapper: exemplos em .NET Core 2.0 e ASP.NET Core 2.0
PostgreSQL
Para utilizar o PostgreSQL em uma aplicação .NET Core 2.0 será necessário adicionar o package Npgsql:

Na listagem a seguir é possível observar um exemplo de uso do Dapper.Contrib em conjunto com a classe NpgsqlConnection (namespace Npgsql):
using System.Collections.Generic;
using Npgsql;
using Microsoft.Extensions.Configuration;
using Dapper.Contrib.Extensions;
namespace APIIndicadores
{
public class IndicadoresDAO
{
private IConfiguration _configuracoes;
public IndicadoresDAO(IConfiguration config)
{
_configuracoes = config;
}
public IEnumerable<Indicador> ListarTodos()
{
using (NpgsqlConnection conexao = new NpgsqlConnection(
_configuracoes.GetConnectionString("BaseIndicadores")))
{
return conexao.GetAll<Indicador>();
}
}
}
}
O projeto contendo o tipo IndicadoresDAO (uma API REST para consulta a indicadores econômicos) já se encontra no GitHub:
MySQL
O acesso a uma base MySQL a partir de uma aplicação .NET Core 2.0 acontecerá por meio do package MySqlConnector:

Já a próxima listagem traz um exemplo de uso do Dapper.Contrib e da classe MySqlConnection (namespace MySql.Data.MySqlClient):
using System.Collections.Generic;
using Microsoft.Extensions.Configuration;
using MySql.Data.MySqlClient;
using Dapper.Contrib.Extensions;
namespace APIEstados
{
public class EstadosDAO
{
private IConfiguration _configuracoes;
public EstadosDAO(IConfiguration config)
{
_configuracoes = config;
}
public IEnumerable<Estado> ListarTodos()
{
using (MySqlConnection conexao = new MySqlConnection(
_configuracoes.GetConnectionString("BaseEstados")))
{
return conexao.GetAll<Estado>();
}
}
}
}
As fontes do projeto contendo a classe EstadosDAO (também uma API REST) estão no GitHub:




