Dapper prend-il en charge un nombre inconnu d'ensembles de résultats?

ado.net c# dapper

Question

Mettre à jour:

Comme Marc l'a noté ci-dessous, ma question fondamentale est la suivante: que se passe-t-il lorsque Read () est appelée plus de fois qu'il n'y a de jeux d'enregistrements lors de l'utilisation de QueryMultiple ()?


Je travaille sur la conversion d'un appel de base de données existant à partir de SqlDataReader en Dapper.

Avoir des problèmes avec ça cependant. J'appelle un sproc, qui peut appeler 1-4 autres sprocs. J'ai donc potentiellement de nombreux ensembles de résultats. Pour simplifier mon explication, supposons que je n'ai qu'un ou deux ensembles de résultats. Si le premier sproc n'est pas appelé, mais que le second sproc IS est appelé, mon premier appel Read () récupère le premier et le seul jeu de résultats. Ensuite, j'ai un tas d'objets TeamItem inutiles qui étaient supposés être des objets ProjectItem. Puis, bien sûr, le second appel à Read () explose car il n’ya pas d’autre jeu de résultats.

Dapper me manque-t-il quelque chose ou est-ce un cas extrême que Dapper ne pourra tout simplement pas supporter?

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

Réponse acceptée

Je suppose que vous utilisez déjà QueryMultiple; il semble que la question fondamentale ici est ce qui se passe lorsque vous appelez Read plus de fois qu'il y a de grilles. Je suppose que cela pourrait renvoyer une séquence vide, mais je soupçonne qu'une sorte de TryRead serait préférable. Non, cela n'a pas encore été fait - mais cela pourrait en théorie.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi