Primeiro exemplo

O Dapper tem suporte a vários bancos de dados. Neste tutorial vamos usar o MySQL como exemplo.

Você precisa instalar o MySQL por conta própria antes de começar.

Depois de instalar o MySQL, crie um banco de dados.

Em seguida, crie as tabelas.

Primeiros passos

1. Instalar os pacotes NuGet

É necessário instalar dois pacotes ao mesmo tempo:

  1. Dapper (biblioteca principal do micro‑ORM)
Install-Package Dapper
  1. MySql.Data (driver do banco MySQL, disponibiliza MySqlConnection)

O Dapper não vem com drivers de banco de dados inclusos. Para acessar o MySQL, você precisa instalar o driver separadamente.

2. Criar tabela do banco de dados
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `StudentID` int NOT NULL AUTO_INCREMENT,
  `StudentName` text,
  `Age` int,
  `ClassName` text,
  PRIMARY KEY (`StudentID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;Code language: SQL (Structured Query Language) (sql)

Classe de entidade C#

Mantenha os nomes das propriedades iguais aos campos da tabela para que o Dapper faça o mapeamento automático.

public class Student
{
    public int StudentID { get; set; }
    public string StudentName { get; set; }
    public int Age { get; set; }
    public string ClassName { get; set; }
}Code language: C# (cs)

Regra: o mapeamento entre campos e propriedades não diferencia maiúsculas de minúsculas, basta que os nomes sejam correspondentes.

Arquivo de configuração

App.config

Correção do erro da imagem original: não preencha providerName com Oracle. O MySQL não precisa dessa configuração e você pode remover ela.

Configurar a string de conexão

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
  <connectionStrings>
    <add name="StudentConnection"
         connectionString="Server=localhost;Database=mydb;Uid=root;Pwd=root"/>
  </connectionStrings>
</configuration>Code language: HTML, XML (xml)

Exemplo de código

using System;
using System.Collections.Generic;
using System.Data;
using Dapper;
using MySql.Data.MySqlClient;
using System.Configuration;

class Program
{
    static void Main(string[] args)
    {
        List<Student> studentList = new List<Student>();

        // Ler string de conexão do arquivo de configuração
        string connStr = ConfigurationManager.ConnectionStrings["StudentConnection"].ConnectionString;

        // 1. Criar conexão com banco IDbConnection
        using (IDbConnection db = new MySqlConnection(connStr))
        {
            // 2. Escrever SQL, 3. Executar consulta com método de extensão Dapper e mapear entidades automaticamente
            string sql = "SELECT * FROM student";
            studentList = db.Query<Student>(sql).ToList();

            Console.WriteLine($"Total de alunos: {studentList.Count}");
        }
        Console.ReadKey();
    }
}Code language: C# (cs)

Os três passos de execução do Dapper

  1. Criar objeto de conexão com banco IDbConnection (MySqlConnection/SqlConnection)
  2. Escrever instruções SQL manualmente para implementar as operações CRUD
  3. Passar o SQL e os parâmetros para os métodos de extensão do Dapper (Query/Execute)

Injeção de SQL

Usar consultas parametrizadas previne completamente a injeção de SQL.
Montar SQL por concatenação de strings traz riscos de injeção.

string sql = "SELECT * FROM student WHERE StudentID = @Id";
var stu = db.QueryFirstOrDefault<Student>(sql, new { Id = 1 });Code language: C# (cs)

Primeiro exemplo

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *