プロトタイプが次のような関数があります。
public void doThings(string sql, dynamic dParams);
これらのパラメーターを使用して、ある種の SQL クエリを実行します。私はそれを書いていませんが、私はそれを使用する必要があります。次のようなことをするとうまくいきます:
doThings("select * from SomeTable where myval1=@v1 and myval2=@v2",
new
{
v1 = new Dapper.DbString()
{
Value = "yay",
IsAnsi = true,
Length = 50
},
v2 = new Dapper.DbString()
{
Value = "really",
IsAnsi = true,
Length = 32
}
});
しかし、動的パラメーターを ExpandoObject に最初に入れたときではありません。
dynamic dynParams = new ExpandoObject();
dynParams.v1 = new Dapper.DbString()
{
Value = "yay",
IsAnsi = true,
Length = 50
}
doThings("query here", dynParams);
その後、クエリは結果を返しません。などのクエリを実行する可能性のある 10 の異なるシナリオで、そのブロックを 10 回呼び出しdoThings()
て書き込みたくありません。を渡す必要がある特別な方法、または一般的にこれを行う必要がある他の方法はありますか?new
myval2
myval3
ExpandoObject