Data

28 nov, 2017

Dapper + .NET Core 2.0: exemplos utilizando PostgreSQL e MySQL

Publicidade

Este novo artigo sobre Dapper traz exemplos de uso deste micro-ORM com PostgreSQL e MySQL, em conjunto com o package Dapper.Contrib (este último sendo uma extensão do Dapper, que facilita a implementação de operações de CRUD). Além disso, foram incluídas aqui, orientações a respeito de quais providers ADO.NET empregar ao optar estes SGBDs.

Caso tenha interesse em conhecer mais sobre o Dapper, consulte também os seguintes artigos:

PostgreSQL

Para utilizar o PostgreSQL em uma aplicação .NET Core 2.0 será necessário adicionar o package Npgsql:

Na listagem a seguir é possível observar um exemplo de uso do Dapper.Contrib em conjunto com a classe NpgsqlConnection (namespace Npgsql):

using System.Collections.Generic;
using Npgsql;
using Microsoft.Extensions.Configuration;
using Dapper.Contrib.Extensions;

namespace APIIndicadores
{
    public class IndicadoresDAO
    {
        private IConfiguration _configuracoes;

        public IndicadoresDAO(IConfiguration config)
        {
            _configuracoes = config;
        }

        public IEnumerable<Indicador> ListarTodos()
        {
            using (NpgsqlConnection conexao = new NpgsqlConnection(
                _configuracoes.GetConnectionString("BaseIndicadores")))
            {
                return conexao.GetAll<Indicador>();
            }
        }
    }
}

O projeto contendo o tipo IndicadoresDAO (uma API REST para consulta a indicadores econômicos) já se encontra no GitHub:

MySQL

O acesso a uma base MySQL a partir de uma aplicação .NET Core 2.0 acontecerá por meio do package MySqlConnector:

Já a próxima listagem traz um exemplo de uso do Dapper.Contrib e da classe MySqlConnection (namespace MySql.Data.MySqlClient):

using System.Collections.Generic;
using Microsoft.Extensions.Configuration;
using MySql.Data.MySqlClient;
using Dapper.Contrib.Extensions;

namespace APIEstados
{
    public class EstadosDAO
    {
        private IConfiguration _configuracoes;

        public EstadosDAO(IConfiguration config)
        {
            _configuracoes = config;
        }

        public IEnumerable<Estado> ListarTodos()
        {
            using (MySqlConnection conexao = new MySqlConnection(
                _configuracoes.GetConnectionString("BaseEstados")))
            {
                return conexao.GetAll<Estado>();
            }
        }
    }
}

As fontes do projeto contendo a classe EstadosDAO (também uma API REST) estão no GitHub:

Referências