Dapper.NET
動的パラメータ
サーチ…
基本的な使用法
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