我正在使用 Dapper dot net 执行一个返回 4 个结果集的存储过程。这是我的做法:
public Results Search(Query query)
{
if (query == null) throw new ArgumentNullException("query");
Results results;
var q = _sqlConnection.QueryMultiple("MySchema.MySproc", query,
commandType: CommandType.StoredProcedure);
{
results = q.Read<Results>().First();
results.CheckAlertResults = q.Read<Results.CheckAlertResult>().ToArray(); // Cannot access a disposed object.Object name: 'GridReader'.
results.PersonAlertResultRows = q.Read<Results.PersonAlertResultRow>().ToArray();
results.RoutingAlertResults = q.Read<Results.RoutingAlertResult>().ToArray();
}
return results;
}
第一个结果集将仅包含 1 行。它对应于我的Results
类上的几个原始属性。
其他 3 个结果集将有很多行,并将填充Results
类上的 3 个复杂数组属性。
出于某种原因,我得到
无法访问已处置的对象。对象名称:“GridReader”。
检查我的代码,看看在哪里。
我已经验证从使用 Linq2Sql 的 LinqPad 调用该过程时可以正常工作。
我究竟做错了什么?