.NET Core中使用Dapper执行存储过程并获取输出参数的值是一种常见需求。Dapper通过动态参数DynamicParameters类支持输出参数。对于输出参数,我们需要指定参数的类型、方向和大小。

1、示例存储过程SQL语句

CREATE PROCEDURE [dbo].[TodoItemInsert]
    @Name VARCHAR(255)
    , @Description VARCHAR(512)
    , @DueDate DATETIME = NULL
    , @IsComplete BIT = 0
    , @Id INT OUTPUT 
AS
INSERT INTO
    [TodoItems]
(
    Name
    , Description
    , DueDate
    , IsComplete
)
VALUES
(
    @Name
    , @Description
    , @DueDate
    , @IsComplete
)
SET @Id = SCOPE_IDENTITY()

2、Dapper中执行存上面的储过程返回输出参数

var parameters = new DynamicParameters(entity);
parameters.Output(entity, x => x.Id);             
await conn.ExecuteAsync(
   "TodoItemInsert", parameters, 
    commandType: CommandType.StoredProcedure);  

相关文档:ASP.NET Core 2.1 中异步使用Dapper总结

                  .NET Core Dapper(ORM) 执行sql语句和事物(Transaction)

推荐文档