Dapper handling devolvió el conjunto de resultados vacío

dapper datareader

Pregunta

Estamos utilizando Dapper para mapear nuestros datos sql y hasta ahora ha funcionado muy bien. Aunque tengo un caso en el que hacemos algo similar a:

someObject = con.Query<T>("GetInfoSproc", p, commandType: CommandType.StoredProcedure).Single();

Esto funciona muy bien siempre que el procedimiento almacenado que estoy llamando devuelva datos. Hay ocasiones en que el procedimiento almacenado puede no devolver un resultado y devolver un error en un parámetro out. Esto parece causar un problema en Dapper porque dapper arroja el error:

"Al usar las API de mapeo múltiple, asegúrese de configurar el parametro splitOn si tiene claves distintas a Id"

¿Hay alguna forma de escribir la consulta para que pueda manejar el caso cuando se devuelve un resultado vacío o es una limitación de Dapper?

Respuesta popular

SingleOrDefault() es tu amigo aquí

Prueba esto:

someObject = con.Query<T>("GetInfoSproc", p, commandType: CommandType.StoredProcedure).SingleOrDefault();
if (someObject != null)
{
  // operate on your results here
}
return someObject;

también deberás asegurarte de que T sea Nullable



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow