基本用法
並不總是能夠在一個物件/呼叫中整齊地打包所有引數。為了幫助處理更復雜的場景,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 流)。 **