O Dapper é um micro ORM que permite a execução de consultas SQL diretamente no banco de dados de forma rápida e eficiente. Ele oferece um mapeamento leve de objetos para resultados de consultas, sendo uma ótima escolha quando você precisa de mais controle sobre as consultas SQL ou quer otimizar o desempenho. Neste exemplo, veremos como realizar uma consulta simples e mapear os resultados para um objeto C# usando o Dapper.
Bibliotecas:
Para usar a biblioteca Dapper, instale o pacote NuGet no seu projeto:
Install-Package Dapper Install-Package Microsoft.Data.Sqlite
Código de Exemplo:
using Dapper; using Microsoft.Data.Sqlite; using System; using System.Collections.Generic; namespace DapperExemplo { public class Produto { public int Id { get; set; } public string Nome { get; set; } public decimal Preco { get; set; } } class Program { static void Main(string[] args) { using (var conexao = new SqliteConnection("Data Source=produtos.db")) { conexao.Open(); // Criando a tabela conexao.Execute("CREATE TABLE IF NOT EXISTS Produtos (Id INTEGER PRIMARY KEY, Nome TEXT, Preco REAL)"); // Inserindo um produto conexao.Execute("INSERT INTO Produtos (Nome, Preco) VALUES (@Nome, @Preco)", new { Nome = "Laptop", Preco = 1500.99m }); // Buscando os produtos IEnumerable<Produto> produtos = conexao.Query<Produto>("SELECT Id, Nome, Preco FROM Produtos"); // Exibindo os produtos foreach (var produto in produtos) { Console.WriteLine($"Id: {produto.Id}, Nome: {produto.Nome}, Preco: {produto.Preco}"); } } } } }
Explicação do Código:
Neste exemplo, usamos o Dapper para executar consultas SQL em um banco de dados SQLite. Primeiro, abrimos uma conexão e criamos a tabela Produtos caso ela ainda não exista. Em seguida, inserimos um novo produto na tabela usando o método Execute. Depois, buscamos todos os produtos na tabela com o método Query, que mapeia os resultados para objetos da classe Produto. Por fim, exibimos os produtos no console.
Conclusão:
O Dapper é uma excelente ferramenta para quem busca um micro ORM que ofereça mais controle sobre as consultas SQL, sem comprometer o desempenho. Ele é fácil de usar, flexível e permite um mapeamento rápido de dados para objetos.
Código fonte: GitHub
Top comments (0)