使用dapper,我可以为存储过程执行批量执行,类似于:
connection.Execute(@"
exec sp1 @i = @one, @y = @two
exec sp2 @i = @three",
new { one = 1, two = 2, three = 3 });
然而,到目前为止,检索数据的唯一方法是使用
results.Read<Type>()
如果结果没有映射到对象怎么办?例如,我正在编写“通用”代码来执行任何带有变量输入/输出参数的SP&amp;结果集。
由于
答案 0 :(得分:2)
你想要什么API?如果您可以单独处理网格:执行以下操作:
using(var multi = connection.QueryMultiple(...))
{
while(!multi.IsConsumed) {
// ...
}
}
...
有权访问:
Read()
代表dynamic
行 - 注意每行也实现了IDictionary<string,object>
Read<T>
()用于通过泛型Read(Type)
表示没有通用的输入行Read<DapperRow
&gt;()(实际上,这只是T
用于实现Read<T>()
的{{1}},但可能更方便),它提供了更多的访问权限到元数据如果您想要放弃原始Read()
,请执行以下操作:
IDataReader
关于参数:using(var reader = connection.ExecuteReader(...)) {
// whatever you want
}
类提供了更丰富的参数控制访问,包括参数方向等。