@@ -69,9 +69,9 @@ private MySqlCommand(MySqlCommand other)
6969
7070 public override object ? ExecuteScalar ( ) => ExecuteScalarAsync ( IOBehavior . Synchronous , CancellationToken . None ) . GetAwaiter ( ) . GetResult ( ) ;
7171
72- public new MySqlDataReader ExecuteReader ( ) => ( MySqlDataReader ) base . ExecuteReader ( ) ;
72+ public new MySqlDataReader ExecuteReader ( ) => ExecuteReaderAsync ( default , IOBehavior . Synchronous , default ) . GetAwaiter ( ) . GetResult ( ) ;
7373
74- public new MySqlDataReader ExecuteReader ( CommandBehavior commandBehavior ) => ( MySqlDataReader ) base . ExecuteReader ( commandBehavior ) ;
74+ public new MySqlDataReader ExecuteReader ( CommandBehavior commandBehavior ) => ExecuteReaderAsync ( commandBehavior , IOBehavior . Synchronous , default ) . GetAwaiter ( ) . GetResult ( ) ;
7575
7676 public override void Prepare ( )
7777 {
@@ -206,19 +206,16 @@ protected override DbTransaction? DbTransaction
206206
207207 protected override DbParameter CreateDbParameter ( ) => new MySqlParameter ( ) ;
208208
209- protected override DbDataReader ExecuteDbDataReader ( CommandBehavior behavior )
210- {
211- this . ResetCommandTimeout ( ) ;
212- return ExecuteReaderAsync ( behavior , IOBehavior . Synchronous , CancellationToken . None ) . GetAwaiter ( ) . GetResult ( ) ;
213- }
209+ protected override DbDataReader ExecuteDbDataReader ( CommandBehavior behavior ) =>
210+ ExecuteReaderAsync ( behavior , IOBehavior . Synchronous , CancellationToken . None ) . GetAwaiter ( ) . GetResult ( ) ;
214211
215212 public override Task < int > ExecuteNonQueryAsync ( CancellationToken cancellationToken ) =>
216213 ExecuteNonQueryAsync ( AsyncIOBehavior , cancellationToken ) ;
217214
218215 internal async Task < int > ExecuteNonQueryAsync ( IOBehavior ioBehavior , CancellationToken cancellationToken )
219216 {
220217 this . ResetCommandTimeout ( ) ;
221- using var reader = ( MySqlDataReader ) await ExecuteReaderAsync ( CommandBehavior . Default , ioBehavior , cancellationToken ) . ConfigureAwait ( false ) ;
218+ using var reader = await ExecuteReaderNoResetTimeoutAsync ( CommandBehavior . Default , ioBehavior , cancellationToken ) . ConfigureAwait ( false ) ;
222219 do
223220 {
224221 while ( await reader . ReadAsync ( ioBehavior , cancellationToken ) . ConfigureAwait ( false ) )
@@ -236,7 +233,7 @@ internal async Task<int> ExecuteNonQueryAsync(IOBehavior ioBehavior, Cancellatio
236233 this . ResetCommandTimeout ( ) ;
237234 var hasSetResult = false ;
238235 object ? result = null ;
239- using var reader = ( MySqlDataReader ) await ExecuteReaderAsync ( CommandBehavior . Default , ioBehavior , cancellationToken ) . ConfigureAwait ( false ) ;
236+ using var reader = await ExecuteReaderNoResetTimeoutAsync ( CommandBehavior . Default , ioBehavior , cancellationToken ) . ConfigureAwait ( false ) ;
240237 do
241238 {
242239 var hasResult = await reader . ReadAsync ( ioBehavior , cancellationToken ) . ConfigureAwait ( false ) ;
@@ -250,16 +247,25 @@ internal async Task<int> ExecuteNonQueryAsync(IOBehavior ioBehavior, Cancellatio
250247 return result ;
251248 }
252249
253- protected override Task < DbDataReader > ExecuteDbDataReaderAsync ( CommandBehavior behavior , CancellationToken cancellationToken )
250+ public new Task < MySqlDataReader > ExecuteReaderAsync ( CancellationToken cancellationToken = default ) =>
251+ ExecuteReaderAsync ( default , AsyncIOBehavior , cancellationToken ) ;
252+
253+ public new Task < MySqlDataReader > ExecuteReaderAsync ( CommandBehavior behavior , CancellationToken cancellationToken = default ) =>
254+ ExecuteReaderAsync ( behavior , AsyncIOBehavior , cancellationToken ) ;
255+
256+ protected override async Task < DbDataReader > ExecuteDbDataReaderAsync ( CommandBehavior behavior , CancellationToken cancellationToken ) =>
257+ await ExecuteReaderAsync ( behavior , AsyncIOBehavior , cancellationToken ) . ConfigureAwait ( false ) ;
258+
259+ internal Task < MySqlDataReader > ExecuteReaderAsync ( CommandBehavior behavior , IOBehavior ioBehavior , CancellationToken cancellationToken )
254260 {
255261 this . ResetCommandTimeout ( ) ;
256- return ExecuteReaderAsync ( behavior , AsyncIOBehavior , cancellationToken ) ;
262+ return ExecuteReaderNoResetTimeoutAsync ( behavior , ioBehavior , cancellationToken ) ;
257263 }
258264
259- internal Task < DbDataReader > ExecuteReaderAsync ( CommandBehavior behavior , IOBehavior ioBehavior , CancellationToken cancellationToken )
265+ internal Task < MySqlDataReader > ExecuteReaderNoResetTimeoutAsync ( CommandBehavior behavior , IOBehavior ioBehavior , CancellationToken cancellationToken )
260266 {
261267 if ( ! IsValid ( out var exception ) )
262- return Utility . TaskFromException < DbDataReader > ( exception ) ;
268+ return Utility . TaskFromException < MySqlDataReader > ( exception ) ;
263269
264270 m_commandBehavior = behavior ;
265271 return CommandExecutor . ExecuteReaderAsync ( new IMySqlCommand [ ] { this } , SingleCommandPayloadCreator . Instance , behavior , ioBehavior , cancellationToken ) ;
0 commit comments