私はコードを見ていて、それを読むことができません。私はまた重要な事例や例を見つけようとしましたが、その問題を理解するのに役立つ具体的な資料や資料を見つけることができませんでした。誰かが私にコードを読んでもらえますか、それを読むためのドキュメントがあるかどうか。
私の質問は、なぜDapperのオブジェクトであるDynamicParameter()
を使う必要があるのかということです。私は=>
手段が何であるかもわかりません。
public void validRecord(string fileName, string rawContent, int userId)
{
Run(conn => conn.Execute("[dbo].[storedProc_GETDone]"
, new DynamicParameters
(new Dictionary<string, object>
{
{"fileName", fileName},
{"rowContent", rawContent},
{"userCreated", userId},
}), CommandType.StoredProcedure));
}
Run
はdapperの一部ではありませんが、C#の=>
を使ってラムダ式を作成しています。この場合は、 Action<DbConnection>
と期待しています。
Run(Action<DbConnection> action) {
using(var conn = CreateConnection()) {
conn.Open();
action(conn);
}
}
つまり、「私はあなたにつながりを与えようとしています;それで何をしたいのですか?」 - この場合、ストアドプロシージャをExecute
することを選択しています。
今のところ、あなたの例ではDynamicParameters
を使用する利点はないことに注意してください。なぜなら情報はよく知られているからです。
Run(conn => conn.Execute("[dbo].[storedProc_GETDone]",
new { fileName, rawContent, userCreated = userId },
CommandType.StoredProcedure));
それはちょうど同様にうまくいくでしょう。したがって、「なぜDynamicParameter
を使用する必要があるのですか?このシナリオではありませんが 、特に、手動でSQLを作成する場合は、たとえば次のような場合があります。
if(name != null) {
sql.Append("and Name = @name ");
args.Add("name", name);
}