【发布时间】:2011-12-22 02:40:55
【问题描述】:
我目前正在使用的系统使用存储过程进行所有数据访问。我目前正在研究 Dapper(到目前为止它看起来很棒),但我想知道是否可以使用使用模板创建的 DynamicParameters 对象,但将其中一个参数设为输出参数。例如:
SP:
CREATE PROCEDURE InsertPerson
@ID int Output,
@Name varchar(100),
@DOB DateTime2
AS
--INSERT STATEMENT
SET @ID = SCOPE_IDENTITY()
POCO:
internal class Person
{
public int ID { get; set; }
public string Name { get; set; }
public DateTime DOB { get; set; }
}
代码:
var procParams = new DynamicParameters(person);
connection.Execute("InsertPerson", procParams, commandType: CommandType.StoredProcedure);
// This is where i'm having the issue, can it be done?
person.ID = procParams.Get<int>("ID");
当前我收到一个错误,因为找不到密钥。有没有办法在不手动设置所有存储的 procs 参数的情况下获取 ID 输出参数?
【问题讨论】: