Introduccion a Dapper con C#
Dapper es una librería Open Source responsable del acceso a datos compuesta por un conjunto métodos de extension de la interface IDbConnection
. Dapper es desarrollada y mantenida por miembros del equipo de Stack Overflow Sam Saffron, Marc Gravell y Nick Craver. El codigo de Dapper se encuentra alojado en el repositorio de Github
Al implementar métodos de extension sobre IDbConnection
le permite funcionar con cualquier proveedor de ADO.NET. En este articulo se muestran ejemplos con Sql Server pero el mismo concepto serviría para MySQL,PostgreSql y para cualquier otra base de datos.
Dapper es reconocido por su alto desempeño en ocasiones superior a las propias librerías provistas por Microsoft como por ejemplo Entity Framework Core. Aunque realizan la misma función una no es el remplazo de la otra. Dapper no cuenta con todas las caracteristicas de un ORM con EF Core y por esta misma razón se autonombra como un micro ORM.
Entre las principales características de Dapper se encuentran:
- Soporte para diferentes motores de base de datos: Dapper es compatible con una amplia variedad de motores de base de datos, como SQL Server, MySQL, PostgreSQL, Oracle, etc.
- Mapeo automático de resultados: Dapper permite mapear automáticamente los resultados de las consultas a objetos de C#, lo que facilita el manejo de datos en la aplicación.
- Ejecución de consultas y procedimientos almacenados: Dapper permite ejecutar consultas SQL y procedimientos almacenados de manera sencilla y eficiente.
Métodos de extensión
Los métodos de extension sobre IDbConnection
que proporciona Dapper son 3
- Query
- Query dinamico
- Execute
Instalación de Dapper
Dapper es un paquete de Nuget por lo que puede ser instalado de multiples formas. Para instalar Dapper en un proyecto con .NET Core o .NET 6 puedes usar la linea de comandos dotnet, Visual Studio y su interfaz gráfica para instalar paquetes. El siguiente comando instala la ultima versión de Dapper:
dotnet add package Dapper
Es importante mencionar que es necesario ejecutar el comando en la ubicación del proyecto.
En Visual Studio puedes instalar Dapper siguiendo el siguiente procedimiento.
- Dar Clic derecho sobre el archivo de proyecto.
- Dar Clic en la opción Administrar paquetes de Nuget
- En la pestaña examinar buscar Dapper.
- Seleccionar Dapper y presionar Instalar.
Usando Dapper en un proyecto de consola
string sql = "SELECT * FROM Clientes";
using var connection = new SqlConnection("Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=minimalAPI;Integrated Security=True;");
var clientes = connection.Query<Cliente>(sql).ToList();
Dapper vs Entity Framework
Una de las ventajas de Dapper sobre Entity Framework Core es la velocidad pero con el detalle que tienes que escribir codigo SQL. A pesar de realizar la misma función los puedes usar en conjunto.
CRUD Con Dapper
Como ejecutar un store procedure con Dapper
Cuando se trata de ejecutar un Procedimiento Almacenado hay muchos casos que pueden ocurrir por ejemplo:
- que el Store regrese 1 conjunto de datos.
- que regresen múltiples conjuntos de datos.
- que regresen a escalar o numero de filas afectadas.
- que no regresen nada
Para ejecutar un procedimiento almacenado con Dapper puedes usar el siguiente codigo: