之前我曾使用QueryMultiple
来处理多个结果集,但我知道返回的结果集的确切数量。在这种情况下,当我使用QueryMultiple
调用存储过程时,返回的结果集数量会有所不同。是否有可能在PetaPoco或Dapper等其他领域处理这个问题?
答案 0 :(得分:2)
Dapper的QueryMultiple
方法返回GridReader
; GridReader
有.IsConsumed
属性,当您已阅读所有可用结果集时,该属性应更改为true
,以便可能有效:
using(var reader = conn.QueryMultiple(...)) {
do {
var data = reader.Read<...>().AsList();
// ...
} while(!reader.IsConsumed);
}
或者,Dapper有一个ExecuteReader
方法,只需执行&#34;打包参数并调用步骤&#34;,以及GetTypeDeserializer
方法,只显示&#34;实现a划入一个物体&#34;代码,所以你可以手动组合这些,即:
using(var reader = conn.ExecuteReader(...)) {
do {
var parser = SqlMapper.GetTypeDeserializer(...);
while(reader.Read()) {
var obj = parser(reader);
// ...
}
} while(reader.NextResult());
}
(我不太了解petapoco,对不起)