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 つの結果セットには多くの行があり、クラスに 3 つの複雑な配列プロパティが設定されますResults
。
どういうわけか、私は得ています
破棄されたオブジェクトにアクセスできません。オブジェクト名: 'GridReader'。
私のコードをチェックして、どこにあるかを確認してください。
Linq2Sql を使用する LinqPad から呼び出したときに、プロシージャが正しく機能することを確認しました。
私は何を間違っていますか?