jueves, 10 de diciembre de 2020

Dapper - SQL

 


Tratando de mejorar el rendimiento de una aplicación encontré este framework buscando alternativas a Entity Framework. Algunos queries que se crean con EF son complejos y demandan cierto rendimiento de la aplicación.  

Después de comprar algunos resultados haciendo las mismas consultas entre EF y Dapper se encuentran cosas interesantes como que se reduce la cantidad de recursos con Dapper. Cada uno de los queries que se crearon redujeron su tamaño en memoria, cargando los mismos datos.

Dapper lo que hace es mapear los resultados de las consultas de SQL en objetos de C#, los cuales luego se pueden utilizar para hacer cualquier otra cosa que se quiera.

Vamos a ver como utilizarlo creando un proyecto y una base de datos de SQLite.

 



Ahora lo que tenemos que hacer es crear una tabla en la nueva base de datos de SQLite



Vamos a usar una única table con 4 registros para nuestro ejemplo.

Lo que debemos hacer ahora es una clase POCO con las propiedades de la tabla. En nuestro ejemplo solo ocupamos el id y el producto. Con esto ya podemos mapear nuestros datos a una clase POCO.


Tenemos que utilizar las librerías que instalamos y algunas otras. Como se puede ver hacemos un using de Dapper.



El código para las consultas lo vamos a hacer en la clase Main


Como se puede ver en el primero script hacemos un SELECT de todos los datos que tenemos. Creamos la conexión de SQLite para poder hacer la consulta de datos. Luego simplemente usamos la clase POCO para correr y mapear los datos resultantes del Query. Luego como se puede ver en el ciclo for los datos se pueden manipular fácilmente.

Pero también tenemos la opción de pasar parámetros a las consultas de SQL. Como se ve en el siguiente ejemplo tenemos el parámetro @id el cual es la llave de nuestra tabla. En este caso solo se va a retornar un solo dato.


Para poder pasar los parámetros se pasan con el query y el nombre de los parámetros con el valor que se necesita.

Dapper es un Framework simple pero poderoso para poder cargar los datos de las bases de datos a objetos de POCO. Este, además, requiere de menos memoria que EF. Por otro lado, nos permite utilizar lenguaje de SQL para hacer las consultas que en lo personal me parece más fácil para consultar las bases de datos SQL.

Puede encontrar más información aquí 


Etiquetas: , , ,

0 comentarios:

Publicar un comentario

Suscribirse a Enviar comentarios [Atom]

<< Inicio