void ExecuteReader <T>(IDataReaderResult <T> result, int recordCount) { int index = 0; int processed = 0; result.Init(DataReader); while (DataReader.Read() && processed < recordCount) { if (index >= RecordOffset) { processed++; result.Read(DataReader); } index++; } result.End(); }
async Task <T> ExecuteReaderAsync <T>(IDataReaderResult <T> result, int recordCount, CancellationToken cancel) { int index = 0; int processed = 0; result.Init(DataReader); while ((await DataReader.ReadAsync(cancel)) && processed < recordCount) { if (index >= RecordOffset) { processed++; result.Read(DataReader); } index++; } result.End(); return(result.Result); }