Dapper para C# (.NET): guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução ao Dapper: o que é e para que serve

\n\n

Dapper é uma biblioteca leve (Micro ORM) para a plataforma .NET, desenvolvida pela equipe do Stack Overflow. Ela é uma extensão para IDbConnection e foi projetada para executar consultas SQL em bancos de dados com sobrecarga mínima. Ao contrário de ORMs pesados (como Entity Framework Core), o Dapper não rastreia alterações em objetos, não gera consultas SQL complexas e não requer configuração de contexto de dados. Seu principal objetivo é máxima performance e simplicidade.

\n\n

Principais vantagens do Dapper:

\n
    \n
  • Velocidade: O Dapper funciona praticamente na velocidade de comandos ADO.NET puros, pois usa geração dinâmica de código IL para mapear resultados.
  • \n
  • Simplicidade: Mínimo de código para executar consultas. Não é necessário criar configurações complexas.
  • \n
  • Controle sobre SQL: Você escreve as consultas SQL manualmente, o que dá controle total sobre quais dados e como são recuperados.
  • \n
  • Flexibilidade: Funciona com qualquer provedor ADO.NET (SQL Server, PostgreSQL, MySQL, SQLite, etc.).
  • \n
  • Extensibilidade: Integra-se facilmente com projetos existentes e outros ORMs.
  • \n
\n\n

O Dapper é ideal para projetos onde a performance e o controle direto sobre SQL são importantes, bem como para microsserviços e aplicações de alta carga.

\n\n

Instalação do Dapper

\n\n

O Dapper é distribuído via NuGet, o gerenciador de pacotes para .NET. Pode ser instalado de várias maneiras:

\n\n

Via Console do Gerenciador de Pacotes (Visual Studio):

\n
Install-Package Dapper
\n\n

Via .NET CLI (método recomendado):

\n
dotnet add package Dapper
\n\n

Via interface NuGet no Visual Studio:

\n
    \n
  1. Clique direito no projeto → "Gerenciar Pacotes NuGet".
  2. \n
  3. Vá para a aba "Procurar".
  4. \n
  5. Encontre "Dapper" e clique em "Instalar".
  6. \n
\n\n

Após a instalação, uma referência ao assembly Dapper.dll aparecerá no projeto. Nenhuma dependência adicional é necessária — a biblioteca funciona sobre o padrão System.Data.

\n\n

Início rápido com exemplo de código

\n\n

Vamos considerar um exemplo mínimo de trabalho com Dapper. Suponha que temos uma tabela Users em um banco de dados SQL Server:

\n\n
CREATE TABLE Users (\n    Id INT PRIMARY KEY IDENTITY,\n    Name NVARCHAR(100) NOT NULL,\n    Age INT NOT NULL\n);
\n\n

Código em C# para obter todos os usuários:

\n\n
using System.Data.SqlClient;\nusing Dapper;\n\npublic class User\n{\n    public int Id { get; set; }\n    public string Name { get; set; }\n    public int Age { get; set; }\n}\n\nclass Program\n{\n    static void Main()\n    {\n        string connectionString = "Server=localhost;Database=TestDB;Trusted_Connection=True;";\n        using (var connection = new SqlConnection(connectionString))\n        {\n            connection.Open();\n            \n            // Consulta SELECT simples\n            var users = connection.Query<User>("SELECT * FROM Users");\n            \n            foreach (var user in users)\n            {\n                Console.WriteLine($"{user.Id}: {user.Name}, {user.Age} anos");\n            }\n        }\n    }\n}
\n\n

Como você pode ver, o Dapper mapeia automaticamente os resultados da consulta SQL para objetos C#. O método Query<T> é o método principal para executar consultas SELECT.

\n\n

Principais métodos/funções do Dapper

\n\n

O Dapper fornece um conjunto de métodos de extensão para a interface IDbConnection. Vamos examinar 10 métodos principais.

\n\n

1. Query<T>

\n

O que faz: Executa uma consulta SQL e retorna uma coleção de objetos do tipo especificado T. Usado para consultas SELECT que retornam várias linhas.

\n

Parâmetros:

Recommendations