1

コードを調べていますが、読むことができません。また、資料や例を見つけようとしましたが、問題を理解するのに役立つ特定のドキュメントやドキュメントを見つけることができませんでした. 誰かが私にコードを読んでもらえますか、それを読むためのドキュメントがあるかどうか。

最初に私の質問は、なぜDynamicParameter()Dapper のオブジェクトである which を使用する必要があるのか​​ということです。=>が何を意味するのかもわかりません。

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));
}
4

1 に答える 1

1

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);
}
于 2013-08-16T06:57:29.530 に答える