更新:
正如 Marc 在下面提到的,我的基本问题是:当使用 QueryMultiple() 时调用 Read() 的次数多于记录集时会发生什么?
我正在将现有的数据库调用从使用 SqlDataReader 转换为 Dapper。
虽然有问题。我调用了一个 sproc,它有条件地可以再调用 1-4 个 sproc。所以我可能有很多结果集。为了简化我的解释,假设我只有 1-2 个结果集。如果第一个 sproc 没有被调用,但第二个 sproc 被调用,那么我的第一个 Read() 调用会吃掉第一个也是唯一的结果集。然后我有一堆应该是 ProjectItem 对象的无用 TeamItem 对象。然后它当然会在第二次调用 Read() 时爆炸,因为没有另一个结果集。
我是否遗漏了有关 Dapper 的某些内容,或者这是 Dapper 无法切实支持的极端情况?
if (_searchParams.WillSearchTeams)
{
var teams = multi.Read<TeamItem>().ToList();
}
var projects = multi.Read<ProjectItem>().ToList();