/// <summary> /// Asynchronously executes data reader and returns custom handler result. /// </summary> public Task <T> ExecuteReaderAsync <T>(Func <IDataReader, CancellationToken, Task <T> > readHandlerAsync, CancellationToken cancel) { using (var selectCmd = GetSelectCmd()) { return(ExecuteCommandAsync <T>(selectCmd, CommandBehavior.Default, (rdr, cToken) => { if (DataReaderRecordOffset > 0 || RecordCount < Int32.MaxValue) { rdr = new OffsetCountDataReaderWrapper(rdr, DataReaderRecordOffset, RecordCount); } return readHandlerAsync(rdr, cToken); }, cancel)); } }
/// <summary> /// Executes data reader and returns custom handler result. /// </summary> public T ExecuteReader <T>(Func <IDataReader, T> readHandler) { using (var selectCmd = GetSelectCmd()) { return(ExecuteCommand <T>(selectCmd, CommandBehavior.Default, rdr => { if (DataReaderRecordOffset > 0 || RecordCount < Int32.MaxValue) { rdr = new OffsetCountDataReaderWrapper(rdr, DataReaderRecordOffset, RecordCount); } return readHandler(rdr); })); } }