Dapper - Parameter Dynamic
Description
Create and use a parameter in a Dapper method.
Single
Execute a single time a SQL Command.
var sql = "EXEC Invoice_Insert";
using (var connection = My.ConnectionFactory())
{
connection.Open();
DynamicParameters parameter = new DynamicParameters();
parameter.Add("@Kind", InvoiceKind.WebInvoice, DbType.Int32, ParameterDirection.Input);
parameter.Add("@Code", "Many_Insert_0", DbType.String, ParameterDirection.Input);
parameter.Add("@RowCount", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue);
connection.Execute(sql,
parameter,
commandType: CommandType.StoredProcedure);
int rowCount = parameter.Get<int>("@RowCount");
}
Many
Execute many times a SQL Command
var sql = "EXEC Invoice_Insert";
var parameters = new List<DynamicParameters>();
for (var i = 0; i < 3; i++)
{
var p = new DynamicParameters();
p.Add("@Kind", InvoiceKind.WebInvoice, DbType.Int32, ParameterDirection.Input);
p.Add("@Code", "Many_Insert_" + (i + 1), DbType.String, ParameterDirection.Input);
p.Add("@RowCount", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue);
parameters.Add(p);
}
using (var connection = My.ConnectionFactory())
{
connection.Open();
connection.Execute(sql,
parameters,
commandType: CommandType.StoredProcedure
);
var rowCount = parameters.Sum(x => x.Get<int>("@RowCount"));
}