我正在查看代码,我无法阅读它。我也试图找到材料和示例,但我无法找到可以帮助我理解问题的具体或任何文档。有人可以读给我代码,如果有任何文档可以阅读它。
首先我的问题是为什么我们需要使用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));
}
答案 0 :(得分:1)
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);
}