Ich habe Probleme damit, Ausgabeparameter mit Hilfe von Dapper korrekt einem Objekt zuzuordnen, wenn ich DynamicParamters
aus einem Vorlagenobjekt erstelle.Zurückgeben von Ausgabeparametern mit Dapper für .NET Core
var parameters = new DynamicParameters(entity);
parameters.Add("@Id", dbType: DbType.Int32, direction: ParameterDirection.Output);
parameters.Output(entity, x => x.Id);
await conn.ExecuteAsync(
"TodoItemInsert", entity,
commandType: CommandType.StoredProcedure);
Meine Hoffnung war, dass der obige Code die resultierende ID zurück in die Einheit Karte würde, die ich von in erster Linie die Parameter erstellt. Egal, was ich versuche, ich kann den Parameter nicht von der gespeicherten Prozedur zurückgeben. Aufruf parameters.Get<int>("@Id")
wirft eine KeyNotFoundException
. parameters.Get<int?>("@Id")
gibt null zurück.
My SQL ist eine sehr grundlegende Einsatz sproc
ALTER 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()
Was ist der richtige Weg, um einen Ausgabeparameter zurück von Dapper zu erhalten, wenn sie versuchen, ein Objekt Vorlage für meine DynamicParameters
zu benutzen?