基本用法

并不总是能够在一个对象/调用中整齐地打包所有参数。为了帮助处理更复杂的场景,dapper 允许 param 参数成为 IDynamicParameters 实例。如果这样做,则会在适当的时间调用自定义 AddParameters 方法并将命令附加到。但是,在大多数情况下,使用预先存在的 DynamicParameters 类型就足够了:

var p = new DynamicParameters(new { a = 1, b = 2 });
p.Add("c", dbType: DbType.Int32, direction: ParameterDirection.Output);
connection.Execute(@"set @c = @a + @b", p);
int updatedValue = p.Get<int>("@c");

由此可见:

  • (可选)来自现有对象的填充
  • (可选)动态添加其他参数
  • 将参数传递给命令
  • 命令完成后检索任何更新的值

请注意,由于 RDBMS 协议的工作原理,在完全使用任何数据(来自 Query 或 QueryMultiple`操作) 之后获取更新的参数值通常是可靠的 (例如,在 SQL Server 上,更新的参数值最后的 TDS 流)。 **