6

アップデート:

Marc が以下で述べているように、私の基本的な質問は次のとおりです。


私は、既存の DB 呼び出しを SqlDataReader から Dapper に変換する作業を行っています。

しかし、それに問題があります。条件付きでさらに 1 ~ 4 個の sproc を呼び出すことができる sproc を呼び出します。だから私は潜在的に多くの結果セットを持っています。説明を簡単にするために、1 ~ 2 個の結果セットしかないと仮定します。最初の sproc が呼び出されず、2 番目の sproc が呼び出された場合、最初の Read() 呼び出しが最初で唯一の結果セットを消費します。次に、ProjectItem オブジェクトであるはずの、役に立たない TeamItem オブジェクトがたくさんあります。もちろん、別の結果セットがないため、Read() への 2 回目の呼び出しで爆発します。

Dapper について何か不足していますか、それとも Dapper がサポートできないという極端なケースですか?

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

1 に答える 1

4

既に QueryMultiple を使用していると思います。ここでの根本的な問題は、グリッドの数よりも多くの回数 Read を呼び出すとどうなるかということです。空のシーケンスを返す可能性があると思いますが、ある種の TryRead の方が望ましいと思いますいいえ、現在はありませんが、理論上は可能です。

于 2013-01-26T08:55:01.940 に答える