Obtenga nombres de campo del Procedimiento almacenado con Dapper

.net dapper

Pregunta

Estoy ejecutando un procedimiento almacenado con Dapper de esta manera:

var sprocResult = conn.Query("TestSproc", new {clientID = 2}, commandType: CommandType.StoredProcedure).ToList();

Puedo enumerar los resultados y enumerar los valores. Lo que necesito poder hacer también es enumerar los nombres de campo que provienen del sproc. No sabré estos nombres de campo en el momento del diseño.

Gracias por adelantado.

Respuesta aceptada

Al usar la API dynamic (la Query(...) lugar de la Query<T>(...) , según su ejemplo), cada fila también implementa IDictionary<string,object> . Así que básicamente:

foreach(IDictionary<string,object> row in sprocResult)
{
    var colNames = row.Keys;
    //...
}

Respuesta popular

Si la consulta no devuelve ninguna fila, las Query().First().Keys No funcionan. En este caso, puede usar ExecuteReader().GetName(i) .



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é