@@ -69,9 +69,9 @@ private MySqlCommand(MySqlCommand other)
69
69
70
70
public override object ? ExecuteScalar ( ) => ExecuteScalarAsync ( IOBehavior . Synchronous , CancellationToken . None ) . GetAwaiter ( ) . GetResult ( ) ;
71
71
72
- public new MySqlDataReader ExecuteReader ( ) => ( MySqlDataReader ) base . ExecuteReader ( ) ;
72
+ public new MySqlDataReader ExecuteReader ( ) => ExecuteReaderAsync ( default , IOBehavior . Synchronous , default ) . GetAwaiter ( ) . GetResult ( ) ;
73
73
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 ( ) ;
75
75
76
76
public override void Prepare ( )
77
77
{
@@ -206,19 +206,16 @@ protected override DbTransaction? DbTransaction
206
206
207
207
protected override DbParameter CreateDbParameter ( ) => new MySqlParameter ( ) ;
208
208
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 ( ) ;
214
211
215
212
public override Task < int > ExecuteNonQueryAsync ( CancellationToken cancellationToken ) =>
216
213
ExecuteNonQueryAsync ( AsyncIOBehavior , cancellationToken ) ;
217
214
218
215
internal async Task < int > ExecuteNonQueryAsync ( IOBehavior ioBehavior , CancellationToken cancellationToken )
219
216
{
220
217
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 ) ;
222
219
do
223
220
{
224
221
while ( await reader . ReadAsync ( ioBehavior , cancellationToken ) . ConfigureAwait ( false ) )
@@ -236,7 +233,7 @@ internal async Task<int> ExecuteNonQueryAsync(IOBehavior ioBehavior, Cancellatio
236
233
this . ResetCommandTimeout ( ) ;
237
234
var hasSetResult = false ;
238
235
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 ) ;
240
237
do
241
238
{
242
239
var hasResult = await reader . ReadAsync ( ioBehavior , cancellationToken ) . ConfigureAwait ( false ) ;
@@ -250,16 +247,25 @@ internal async Task<int> ExecuteNonQueryAsync(IOBehavior ioBehavior, Cancellatio
250
247
return result ;
251
248
}
252
249
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 )
254
260
{
255
261
this . ResetCommandTimeout ( ) ;
256
- return ExecuteReaderAsync ( behavior , AsyncIOBehavior , cancellationToken ) ;
262
+ return ExecuteReaderNoResetTimeoutAsync ( behavior , ioBehavior , cancellationToken ) ;
257
263
}
258
264
259
- internal Task < DbDataReader > ExecuteReaderAsync ( CommandBehavior behavior , IOBehavior ioBehavior , CancellationToken cancellationToken )
265
+ internal Task < MySqlDataReader > ExecuteReaderNoResetTimeoutAsync ( CommandBehavior behavior , IOBehavior ioBehavior , CancellationToken cancellationToken )
260
266
{
261
267
if ( ! IsValid ( out var exception ) )
262
- return Utility . TaskFromException < DbDataReader > ( exception ) ;
268
+ return Utility . TaskFromException < MySqlDataReader > ( exception ) ;
263
269
264
270
m_commandBehavior = behavior ;
265
271
return CommandExecutor . ExecuteReaderAsync ( new IMySqlCommand [ ] { this } , SingleCommandPayloadCreator . Instance , behavior , ioBehavior , cancellationToken ) ;
0 commit comments