¿Cuál es la diferencia entre cómo se manejan los objetos en Dapper y Entity Framework, con consultas SQL sin formato?

asp.net-core dapper entity-framework orm sql

Pregunta

Desde mi lectura, se supone que Dapper es más amigable con SQL, pero Entity Framework (EF) permite SQL sin formato. Normalmente utilizo SQL, pero me gustan algunas de las cosas en EF. Muchas de mis consultas son bastante complejas, cubren más de una base de datos y motor de base de datos, y la mayoría no son simplemente simples CRUD.

Cuando se trata de usar SQL, ¿cuál es la diferencia en cómo se maneja un objeto? Cuando emito una consulta, si algo vuelve y lo asigno a un tipo de List <dynamic> , ¿son los dos iguales?

Estoy usando ASP.NET Core 1.x.

Respuesta popular

Si usa EF para emitir solicitudes SQL, realmente no está usando EF. Las llamadas son línea por línea equivalente a ADO, y la carga del objeto resultante, que puede definir y mantener, es trivial. Muchos usuarios usan EF, pero luego usan Dapper para los tiempos que quieran hacer SQL sin procesar. Dapper almacena en caché la asignación del conjunto de resultados a POCO, por lo que las consultas posteriores se ejecutan más rápido. No creo que EF haga esto. También el manejo de parámetros es mucho más agradable en Dapper.

Pero todavía está atascado con SQL en literales de cadena, cada error es un error de tiempo de ejecución y debe escribir y mantener sus POCOs de resultados. Sostengo que serás más feliz y vivirás más tiempo si usas QueryFirst (descargo de responsabilidad: que escribí). Su SQL en un archivo .sql, sintaxis validada mientras escribe. Sus POCO generadas en el momento del diseño a partir de los resultados de su consulta. ¡Sus consultas continuamente probadas de integración y muchos otros beneficios que documentaré en breve!



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué