我一直在使用Dapper调用存储过程传递一个对象。例如:
如果我有一个对象:
public int ID { get; set; }
public int Year { get; set; }
我可以创建此对象并将其作为参数传递给我的Execute
调用。 Dapper会自动将所有这些属性映射到参数中并执行存储过程。真棒。
输出参数怎么样?如果我的对象如下所示,我如何让Dapper用输出参数值填充该属性?
public int ID { get; set; }
public int Year { get; set; }
public int OutputParameter { get; set; }
是否必须将输出参数添加为DynamicParameters
?
答案 0 :(得分:1)
这样的事情:
DynamicParameters _params = new DynamicParameters();
_params.Add("@newId", DbType.Int32, direction: ParameterDirection.Output);
var result = connection.Execute("[dbo].YourProc", _params, null, null, CommandType.StoredProcedure);
var retVal = _params.Get<int>("newId");
答案 1 :(得分:0)
DynamicParameters _params = new DynamicParameters(new {
ID = 123,
Year = 2020,
OutputParameter = 0
});
_params.Add("OutputParameter", 0, direction: ParameterDirection.Output);
var result = connection.Execute("[dbo].YourProc", _params, commandType: CommandType.StoredProcedure);
var retVal = _params.Get<int>("OutputParameter");
答案 2 :(得分:0)
我首先找到了您的问题,但是这里的答案没有帮助。尽管这个问题的答案对我来说非常有效。发布它(如果对其他人有帮助)。我认为我没有足够的特权喜欢实际联系问题。 https://stackoverflow.com/a/28727355/4172413