我正在查看代碼,我無法閱讀它。我也試圖找到材料和示例,但我無法找到可以幫助我理解問題的具體或任何文檔。有人可以讀給我代碼,如果有任何文檔可以閱讀它。
首先我的問題是為什麼我們需要使用DynamicParameter()
這是Dapper的一個對象。我也不確定=>
是什麼意思。
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#中的=>
用於創建一個lambda表達式 ,在這種情況下我希望它是一個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);
}