Dapper supporta un numero sconosciuto di set di risultati?

ado.net c# dapper

Domanda

Aggiornare:

Come notato da Marc in seguito, la mia domanda fondamentale è: cosa succede quando Read () viene chiamato più volte di quanto non ci siano set di record quando si usa QueryMultiple ()?


Sto lavorando alla conversione di una chiamata DB esistente dall'utilizzo di SqlDataReader a Dapper.

Avere problemi con esso però. Chiamo un sproc, che condizionalmente può chiamare 1-4 più sproc. Quindi ho potenzialmente molti set di risultati. Per semplificare la mia spiegazione, supponiamo di avere solo 1-2 set di risultati. Se il primo sproc non viene chiamato, ma viene chiamato il secondo sproc, la mia prima chiamata Read () mangia il primo e unico set di risultati. Poi ho un mucchio di oggetti TeamItem inutili che dovevano essere oggetti ProjectItem. Quindi, ovviamente, esplode nella seconda chiamata a Read () perché non c'è un altro set di risultati.

Mi manca qualcosa su Dapper, o è un caso estremo che Dapper non sarà in grado di supportare in modo fattibile?

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

Risposta accettata

Presumo che tu stia già utilizzando QueryMultiple; sembra che la domanda fondamentale qui sia ciò che accade quando chiami Leggi più volte di quante siano le griglie. Suppongo che potrebbe restituire una sequenza vuota, ma sospetto che una specie di TryRead sia preferibile. No, non ce l'ha al momento - ma potrebbe teoricamente.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché