2017-12-14 11 views
1

複数の結果セットを扱うのに以前はQueryMultipleを使用しましたが、返される結果セットの正確な数はわかっていました。この場合、QueryMultipleでストアドプロシージャを呼び出すと、返される結果セットの数が異なります。 PetaPocoやDapperのような別のものでこれを扱うことは可能ですか?PetapocoまたはDapperでさまざまな数の結果セットを扱う?

答えて

2

DapperのQueryMultipleメソッドは、GridReaderを返します。 GridReaderでは、利用可能なすべての結果セットを読んだときtrueに変更する必要があり.IsConsumed性質を持っているので、それがうまくいくかもしれない:

using(var reader = conn.QueryMultiple(...)) { 
    do { 
     var data = reader.Read<...>().AsList(); 
     // ... 
    } while(!reader.IsConsumed); 
} 

また、Dapperのは、単に「パラメータをパックんExecuteReader方法があり、

using(var reader = conn.ExecuteReader(...)) { 
    do { 
     var parser = SqlMapper.GetTypeDeserializer(...); 
     while(reader.Read()) { 
      var obj = parser(reader); 
      // ... 
     } 
    } while(reader.NextResult()); 
} 

を(私は申し訳ありませんが、petapocoについて多くを知らない):手動すなわち、それらを組み合わせることができるように、ステップ」、とだけ公開しGetTypeDeserializer方法 『オブジェクト』のコードに行を実体化を呼び出します

+0

ありがとうございましたマークは、他より速いですか? – xaisoft

+0

@xaisoftは時間をとっても気軽に教えてください:) –

+0

Marc、私はQueryMultipleを先に進めました。それは素晴らしい作品です。再度、感謝します – xaisoft

関連する問題