Comparando QUERY y EXECUTE en Dapper

c# dapper

Pregunta

Me gustaría preguntar si es mejor utilizar al INSERTAR, ACTUALIZAR, ELIMINAR, ELIMINAR, CONSULTAR DATOS ESPECÍFICOS usando DAPPER? Estoy realmente confundido al usar los comandos EXECUTE y QUERY en DAPPER.

Respuesta aceptada

Esto no debe ser confuso en absoluto, especialmente si observa la firma de los métodos expuestos por el Dapper (según la documentación):

public static IEnumerable<T> Query<T>(this IDbConnection cnn, string sql, object param = null, SqlTransaction transaction = null, bool buffered = true)

El método Query está específicamente diseñado para ejecutar internamente una declaración de selección, que puede devolver el IEnumerable of a type T , existen opciones para ejecutarlo, si se hace usando un anonymous parameter , entonces no se espera ningún return value o Output parameter , solo se necesita input parameter y proporciona el resultado, que tiene un esquema que se corresponde con las propiedades del Type T En caso de Output parameter se requiera un return value o un Output parameter , entonces esto debe estar vinculado usando DynamicParameters

public static int Execute(this IDbConnection cnn, string sql, object param = null, SqlTransaction transaction = null)

El método Execute está destinado a ejecutar las declaraciones DML, como Insert, Update and Delete , cuyo propósito es realizar cambios en los datos en la base de datos. El tipo de devolución es un integer , que debe contener el valor de la cantidad de filas actualizadas, si en SQL Server hemos configurado Set RowCount On , esta llamada no ayudará a devolver el Conjunto de resultados, es solo para llamadas DML.

En caso de que necesite un conjunto de resultados múltiples, entonces tenemos QueryMultiple . que devuelve un GridReader y puede usarse para devolver el resultado de múltiples instrucciones Select, utilizando un concepto de MARS (conjunto de resultados múltiples múltiples).

Prácticamente, si su objetivo es solo ejecutar un procedimiento, cualquiera de ellos lo haría, pero lo más importante es qué conjunto de resultados espera recibir, todos tienen un retorno diferente para proporcionar resultados.



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é