サーチ…


基本的な使用法

1つのオブジェクト/コールですべてのパラメータをきれいにまとめることは必ずしも可能ではありません。より複雑なシナリオを支援するために、dapperはparamパラメータをIDynamicParametersインスタンスにします。これを行うと、カスタムAddParametersメソッドが適切なタイミングで呼び出され、に追加するコマンドが渡されます。ただし、ほとんどの場合、既存のDynamicParametersタイプを使用すれば十分です。

var p = new DynamicParameters(new { a = 1, b = 2 });
p.Add("c", dbType: DbType.Int32, direction: ParameterDirection.Output);
connection.Execute(@"set @c = @a + @b", p);
int updatedValue = p.Get<int>("@c");

これは次のとおりです:

  • 既存のオブジェクトからの(オプションの)母集団
  • (オプション)オンザフライでパラメータを追加する
  • パラメータをコマンドに渡す
  • コマンドが終了した後に更新された値を取得する

RDBMSプロトコルがどのように動作するかによって、通常、 QueryまたはQueryMultiple操作からのデータが完全に消費された後に更新されたパラメータ値を取得することは信頼できることに注意してください(たとえば、SQL Serverでは更新されたパラメータ値が最後です TDSストリームの)。

Dapperの動的パラメータ

connection.Execute(@"some Query with @a,@b,@c", new {a=somevalueOfa,b=somevalueOfb,c=somevalueOfc});

テンプレートオブジェクトの使用

オブジェクトのインスタンスを使用してパラメータを構成することができます

public class SearchParameters {
  public string SearchString { get; set; }
  public int Page { get; set; }
}

var template= new SearchParameters {
  SearchString = "Dapper",
  Page = 1
};

var p = new DynamicParameters(template);

匿名オブジェクトまたはDictionary使用することもできます



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow