我有一个在 SQL Server 2005 上运行的项目。我有一个存储过程,它接受一些输入参数,有 2 个输出参数,还从内部的 select 语句返回一个结果集。
数据不打算作为对象返回,只是一个没有主键的简单 dto 类“Foo”。
我尝试将 Dapper.Net 与以下代码一起使用,但我得到了返回的异常错误
使用多映射 API 时,如果您有除 Id 以外的键,请确保设置 splitOn 参数
代码:
var p = new DynamicParameters();
p.Add("@Code", code);
p.Add("@MessageControlId", getMessageControlId);
p.Add("@SuccessCode", dbType: DbType.Int32, direction: ParameterDirection.Output);
p.Add("@ErrorDescription", dbType: DbType.String, direction: ParameterDirection.Output, size: 255);
var result = this.db.Query(sql: "up_MessageProcessed_get", param: p, commandType: CommandType.StoredProcedure);
我应该能够用 Dapper.Net 做到这一点吗?我应该调用其他东西来获取简单的结果集吗?
根据要求,这里是程序的外壳,它将设置返回值并返回 1 个结果集。
CREATE PROCEDURE [dbo].[up_MessageProcessed_get]
@Code varchar(10),
@MessageControlID varchar(22),
@SuccessCode int OUTPUT,
@ErrorDescription varchar(255) OUTPUT
AS
BEGIN
Select 2 as MessageProcessID, 38349348 as StartNum, 3874900 as EndNum, GETDATE() as StartDate, GETDATE() as EndDate
SET @SuccessCode = 0
SET @ErrorDescription = 'Completed successfully'
END