Introdução ao Dapper: o que é e para que serve
\n\nDapper é 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.
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
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\nInstalação do Dapper
\n\nO Dapper é distribuído via NuGet, o gerenciador de pacotes para .NET. Pode ser instalado de várias maneiras:
\n\nVia Console do Gerenciador de Pacotes (Visual Studio):
\nInstall-Package Dapper\n\nVia .NET CLI (método recomendado):
\ndotnet add package Dapper\n\nVia interface NuGet no Visual Studio:
\n- \n
- Clique direito no projeto → "Gerenciar Pacotes NuGet". \n
- Vá para a aba "Procurar". \n
- Encontre "Dapper" e clique em "Instalar". \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.
Início rápido com exemplo de código
\n\nVamos considerar um exemplo mínimo de trabalho com Dapper. Suponha que temos uma tabela Users em um banco de dados SQL Server:
CREATE TABLE Users (\n Id INT PRIMARY KEY IDENTITY,\n Name NVARCHAR(100) NOT NULL,\n Age INT NOT NULL\n);\n\nCódigo em C# para obter todos os usuários:
\n\nusing 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\nComo 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.
Principais métodos/funções do Dapper
\n\nO Dapper fornece um conjunto de métodos de extensão para a interface IDbConnection. Vamos examinar 10 métodos principais.
1. Query<T>
\nO 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.
Parâmetros:
Também na biblioteca
Geração Swagger/OpenAPI em Kotlin: ferramentas e exemplos
Trabalho com XML em PHP: guia completo para análise e criação de documentos XML
SwiftUI para Swift: guia completo com exemplos
Configuração de aplicações Java: bibliotecas e ferramentas