Dapper是否支持未知数量的结果集?

时间:2013-01-26 07:43:01

标签: c# ado.net dapper

更新

正如Marc在下面提到的,我的基本问题是:当使用QueryMultiple()时,当Read()被调用的次数多于记录集时会发生什么?


我正致力于将现有数据库调用从使用SqlDataReader转换为Dapper。

虽然有问题。我称之为sproc,有条件地可以调用1-4个sprocs。所以我可能有很多结果集。 为了简化我的解释,我们假设我只有1-2个结果集。如果第一个sproc没有被调用,但第二个sproc被调用,那么我的第一个Read()调用会占用第一个和唯一的结果集。然后我有一堆无用的TeamItem对象,它们应该是ProjectItem对象。然后它会在第二次调用Read()时爆炸,因为没有其他结果集。

我是否遗漏了有关Dapper的事情,或者这是Dapper刚刚赢得无法支持的极端情况?

if (_searchParams.WillSearchTeams)
{
    var teams = multi.Read<TeamItem>().ToList();
}
var projects = multi.Read<ProjectItem>().ToList();

1 个答案:

答案 0 :(得分:4)

我假设你已经在使用QueryMultiple;这听起来像这里的基本问题是,当你打电话阅读时间比网格更多时会发生什么。我想它可以返回一个空序列,但我怀疑某种TryRead会更好。不,它目前没有 - 但它理论上可以。