¿Admite Dapper una cantidad desconocida de conjuntos de resultados?

ado.net c# dapper

Pregunta

Actualizar:

Como señala Marc a continuación, mi pregunta fundamental es: ¿qué sucede cuando se llama a Read () más veces que a los conjuntos de registros cuando se usa QueryMultiple ()?


Estoy trabajando para convertir una llamada DB existente de SqlDataReader a Dapper.

Teniendo problemas con eso. Llamo a un sproc, que condicionalmente puede llamar a 1-4 sprocs más. Entonces potencialmente tengo muchos conjuntos de resultados. Para simplificar mi explicación, supongamos que solo tengo 1-2 conjuntos de resultados. Si no se llama al primer sproc, pero se llama al segundo sproc, mi primera llamada de Read () consume el primer y único conjunto de resultados. Luego tengo un montón de objetos inútiles de TeamItem que se suponía que eran objetos de ProjectItem. Luego, por supuesto, explota en la segunda llamada a Read () porque no hay otro conjunto de resultados.

¿Me estoy perdiendo algo acerca de Dapper, o es este un caso extremo que Dapper simplemente no podrá soportar de manera viable?

if (_searchParams.WillSearchTeams)
{
    var teams = multi.Read<TeamItem>().ToList();
}
var projects = multi.Read<ProjectItem>().ToList();

Respuesta aceptada

Supongo que ya estás usando QueryMultiple; Parece que la pregunta fundamental aquí es qué sucede cuando llamas Leer más veces que cuadrículas. Supongo que podría devolver una secuencia vacía, pero sospecho que algún tipo de TryRead sería preferible. No, no tiene actualmente, pero podría en teoría.



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é