i'm struggling how map output parameters object using dapper, when create dynamicparamters
template object.
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);
my hope above code map resulting id entity created parameters in first place. no matter try unable parameter return stored procedure. calling parameters.get<int>("@id")
throws keynotfoundexception
. parameters.get<int?>("@id")
returns null.
my sql basic insert sproc
alter procedure [dbo].[todoiteminsert] @name varchar(255) , @description varchar(512) , @duedate datetime = null , @iscomplete bit = 0 , @id int output insert [todoitems] ( name , description , duedate , iscomplete ) values ( @name , @description , @duedate , @iscomplete ) set @id = scope_identity()
what correct way output parameter dapper when trying use object template dynamicparameters
?
figured out, didn't update code when moved template parameters. passing entity
query, not parameters
. once replaced rid of explicit addition of id
output parameter. nicer!
var parameters = new dynamicparameters(entity); parameters.output(entity, x => x.id); await conn.executeasync( "todoiteminsert", parameters, commandtype: commandtype.storedprocedure);
Comments
Post a Comment