1. O que é o Dapper
O Dapper é um Micro ORM do .NET, muito conhecido como o rei dos Micro ORM, com desempenho bem próximo ao ADO.NET nativo.
ORM: Mapeador Objeto‑Relacional. Faz o mapeamento automático entre tabelas do banco de dados e objetos de entidade C#.
Principais pontos:
- Não faz encapsulamento do SQL, o desenvolvedor escreve as consultas por conta própria;
- Estende a interface
IDbConnectionpor meio de métodos de extensão (funciona diretamente com qualquer objeto de conexão com banco); - Pacote leve e com desempenho excelente.
Observação: estritamente falando ele se encaixa na categoria de Micro ORM, diferente de frameworks ORM completos como o EF Core. A comunidade ainda discute se ele pode ser considerado um ORM de fato.
Proteção contra injeção de SQL: use consultas parametrizadas para evitar ataques de injeção; concatenar strings SQL ainda traz riscos.
Três passos do fluxo de execução: criar conexão com o banco → montar a instrução SQL → chamar os métodos de extensão do Dapper para rodar o SQL com os parâmetros informados.
Características
- Alto desempenho, consultas com velocidade elevada
- Suporta mapeamento para entidades estáticas e objetos dinâmicos
- Liberdade total para manipular as instruções SQL
- Trabalha com consultas que retornam múltiplos conjuntos de resultados
- Suporte nativo a procedimentos armazenados
- Baseado na interface
IDbConnection, compatível com diversos drivers de banco de dados - Suporte a inserção em lote (recurso extra; implementação nativa simples, para grandes volumes recomenda‑se o Dapper.Plus)
Instalação
Método 1: Console do Gerenciador de Pacotes NuGet (PMC)
Install-Package Dapper
Método 2: .NET CLI (indicado para .NET Core/.NET5+)
dotnet add package Dapper
Método 3: Interface gráfica do Visual Studio
Gerenciador de Soluções → clique com botão direito no projeto → Gerenciar Pacotes NuGet, pesquise por Dapper e realize a instalação.
Aviso importante: o Dapper não vem com drivers de banco de dados inclusos!
Para trabalhar com SQL Server instale separadamente o pacoteMicrosoft.Data.SqlClient; para MySQL instale oMySqlConnector.
Exemplo prático
using Dapper;
using Microsoft.Data.SqlClient;
// 1. Instanciar o IDbConnection
string connStr = "sua string de conexão com o banco";
using var conn = new SqlConnection(connStr);
// 2. Montar o comando SQL
string sql = "SELECT * FROM Article WHERE Id = @Id";
// 3. Executar consulta e fazer mapeamento automático para entidade
var article = conn.QueryFirstOrDefault<Article>(sql, new { Id = 1 });
public class Article
{
public int Id { get; set; }
public string Title { get; set; }
}Code language: JavaScript (javascript)
Comparativo
| Framework | Tipo | Controle sobre SQL | Cenários de uso |
|---|---|---|---|
| Dapper | Micro ORM | SQL escrito manualmente | Projetos que exigem desempenho, consultas complexas, migração de projetos legados |
| EF Core | Full ORM | Gera SQL automaticamente, também aceita SQL bruto | Desenvolvimento rápido, regras de negócio simples, quando não quer escrever SQL na mão |
Apresentação e instalação