3

dapper を使用すると、次のようなストアド プロシージャのバッチ実行を実行できます。

connection.Execute(@"
  exec sp1 @i = @one, @y = @two 
  exec sp2 @i = @three",
  new { one = 1, two = 2, three = 3 });

ただし、これまでに見たデータを取得する唯一の手段は、

results.Read<Type>()

結果がオブジェクトにマッピングされない場合はどうなりますか? たとえば、変数の入出力パラメーターと結果セットを使用して SP を実行する「汎用」コードを作成しています。

ありがとう

4

1 に答える 1

3

どの API が必要ですか? グリッドを個別に処理できる場合は、次のようにします。

using(var multi = connection.QueryMultiple(...))
{
    while(!multi.IsConsumed) {
        // ...
    }
}

...アクセスできる場所:

  • Read()行の場合dynamic- 各行も実装することに注意してくださいIDictionary<string,object>
  • Read<T>() ジェネリックを介して型付けされた行
  • Read(Type)ジェネリックなしの型付き行の場合
  • Read<DapperRow>() (実際には、これはを実装するためTに使用するものですが、おそらくより便利です)、メタデータへのアクセスがわずかに増えますRead<T>()Read()

raw にドロップする場合はIDataReader、次のようにします。

using(var reader = connection.ExecuteReader(...)) {
    // whatever you want
}

パラメーターに関して: このDynamicParametersクラスは、パラメーターの方向などを含む、パラメーター制御へのより豊富なアクセスを提供します。

于 2014-09-02T10:11:41.800 に答える