使用Dapper自动映射输出参数

时间:2015-12-14 15:37:42

标签: sql dapper

我一直在使用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

3 个答案:

答案 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