基本用法
并不总是能够在一个对象/调用中整齐地打包所有参数。为了帮助处理更复杂的场景,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 流)。 **