Estoy muy impresionado con los resultados de Dapper Micro ORM para stackoverflow.com. Lo estoy considerando para mi nuevo proyecto y me preocupa que algunas veces mi proyecto requiera tener un procedimiento almacenado y haya buscado mucho en la web pero no haya encontrado nada con el procedimiento almacenado. Entonces, ¿hay alguna manera de hacer que Dapper funcione con un procedimiento almacenado?
Avíseme si es posible; de lo contrario, tengo que extenderlo en mi camino.
.net
stored-procedures
orm
dapper
Jalpesh Vadgama
fuente
fuente
Respuestas:
En el caso simple puedes hacer:
Si quieres algo más elegante, puedes hacer:
Además, puede usar exec en un lote, pero eso es más torpe.
fuente
cnn.Query<MyType>
¿cómo puedo obtener el valor del parámetro de salida del proceso?Creo que la respuesta depende de las características de los procedimientos almacenados que necesite usar.
Los procedimientos almacenados que devuelven un conjunto de resultados se pueden ejecutar utilizando
Query
; los procedimientos almacenados que no devuelven un conjunto de resultados se pueden ejecutar usandoExecute
, en ambos casos (usandoEXEC <procname>
) como el comando SQL (más parámetros de entrada según sea necesario). Consulte la documentación para más detalles.A partir de la revisión 2d128ccdc9a2 , no parece haber soporte nativo para los
OUTPUT
parámetros; podría agregar esto, o alternativamente construir unQuery
comando más complejo que declarara variables TSQL, ejecutó losOUTPUT
parámetros de recolección de SP en las variables locales y finalmente los devolvió en un conjunto de resultados:fuente
Aquí hay un código para obtener el valor devuelto del procedimiento Store
Procedimiento almacenado:
Código:
fuente
Lo mismo de arriba, un poco más detallado
Usando .Net Core
Controlador
Procedimiento almacenado (relación padre-hijo)
Referencias en caso
fuente
Microsoft.EntityFrameworkCore
? ¿Solo usando Dapper en DAL ?Con retorno múltiple y parámetro múltiple
fuente
fuente