¿Cómo obtener el valor de retorno cuando se usa dapper para ejecutar

dapper

Pregunta

¿Cómo puedo hacer que el código anterior devuelva bool basado en la ejecución? Entonces puedo volver al método de llamada.

public void UpdateSpanStartDate(SpanRecord spanRecord)
{
    Run(conn => conn.Execute("[dbo].[SpecailSpanStartUpdate]",
        new DynamicParameters(new Dictionary<string, object>
        {
             {"SpanId", spanRecord.SpanId},
        }), null,Config.CommandTimeout, CommandType.StoredProcedure));
    }

Respuesta experta

Eso depende completamente de dónde proviene el bool . La configuración más común sería que el sproc select algún tipo de salida; si este es el caso, lo más apropiado es usar Query<T> junto con una operación LINQ como Single . Por ejemplo (también ordenando los parámetros):

Run(conn => conn.Query<int>("[dbo].[SpecailSpanStartUpdate]",
    new {spanRecord.SpanId}, null,
     Config.CommandTimeout, CommandType.StoredProcedure).Single() != 0);

Aquí estoy esperando una única fila que tenga un int en la primera columna, que devuelva true si el int no es cero.



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é