@@ -392,45 +392,40 @@ public async ValueTask ReleaseSavepointAsync(
392392 #region Sync Execute methods
393393
394394 public int ExecuteNonQuery ( Session session , DbCommand command ) =>
395- ExecuteCommand ( session , command , c => c . ExecuteNonQuery ( ) ) ;
395+ ExecuteCommand ( session , command , CommandBehavior . Default , ( c , cb ) => c . ExecuteNonQuery ( ) ) ;
396396
397397 public object ExecuteScalar ( Session session , DbCommand command ) =>
398- ExecuteCommand ( session , command , c => c . ExecuteScalar ( ) ) ;
398+ ExecuteCommand ( session , command , CommandBehavior . Default , ( c , cb ) => c . ExecuteScalar ( ) ) ;
399399
400- public DbDataReader ExecuteReader ( Session session , DbCommand command ) =>
401- ExecuteCommand ( session , command , c => c . ExecuteReader ( ) ) ;
400+ public DbDataReader ExecuteReader ( Session session , DbCommand command ,
401+ CommandBehavior behavior = CommandBehavior . Default ) =>
402+ ExecuteCommand ( session , command , behavior , ( c , cb ) => c . ExecuteReader ( cb ) ) ;
402403
403404 #endregion
404405
405406 #region Async Execute methods
406407
407- public Task < int > ExecuteNonQueryAsync ( Session session , DbCommand command ) =>
408- ExecuteCommandAsync ( session , command , CancellationToken . None ,
409- ( c , ct ) => c . ExecuteNonQueryAsync ( ct ) ) ;
408+ public Task < int > ExecuteNonQueryAsync ( Session session , DbCommand command , CancellationToken cancellationToken = default ) =>
409+ ExecuteCommandAsync ( session , command , CommandBehavior . Default , cancellationToken ,
410+ ( c , cb , ct ) => c . ExecuteNonQueryAsync ( ct ) ) ;
410411
411- public Task < int > ExecuteNonQueryAsync ( Session session , DbCommand command , CancellationToken cancellationToken ) =>
412- ExecuteCommandAsync ( session , command , cancellationToken ,
413- ( c , ct ) => c . ExecuteNonQueryAsync ( ct ) ) ;
412+ public Task < object > ExecuteScalarAsync ( Session session , DbCommand command , CancellationToken cancellationToken = default ) =>
413+ ExecuteCommandAsync ( session , command , CommandBehavior . Default , cancellationToken ,
414+ ( c , cb , ct ) => c . ExecuteScalarAsync ( ct ) ) ;
414415
415- public Task < object > ExecuteScalarAsync ( Session session , DbCommand command ) =>
416- ExecuteCommandAsync ( session , command , CancellationToken . None ,
417- ( c , ct ) => c . ExecuteScalarAsync ( ct ) ) ;
416+ public Task < DbDataReader > ExecuteReaderAsync ( Session session , DbCommand command ,
417+ CancellationToken cancellationToken = default ) =>
418+ ExecuteReaderAsync ( session , command , CommandBehavior . Default , cancellationToken ) ;
418419
419- public Task < object > ExecuteScalarAsync ( Session session , DbCommand command , CancellationToken cancellationToken ) =>
420- ExecuteCommandAsync ( session , command , cancellationToken ,
421- ( c , ct ) => c . ExecuteScalarAsync ( ct ) ) ;
422-
423- public Task < DbDataReader > ExecuteReaderAsync ( Session session , DbCommand command ) =>
424- ExecuteCommandAsync ( session , command , CancellationToken . None ,
425- ( c , ct ) => c . ExecuteReaderAsync ( ct ) ) ;
426-
427- public Task < DbDataReader > ExecuteReaderAsync ( Session session , DbCommand command , CancellationToken cancellationToken ) =>
428- ExecuteCommandAsync ( session , command , cancellationToken ,
429- ( c , ct ) => c . ExecuteReaderAsync ( ct ) ) ;
420+ public Task < DbDataReader > ExecuteReaderAsync (
421+ Session session , DbCommand command , CommandBehavior behavior , CancellationToken cancellationToken = default ) =>
422+ ExecuteCommandAsync ( session , command , behavior , cancellationToken ,
423+ ( c , cb , ct ) => c . ExecuteReaderAsync ( cb , ct ) ) ;
430424
431425 #endregion
432426
433- private TResult ExecuteCommand < TResult > ( Session session , DbCommand command , Func < DbCommand , TResult > action )
427+ private TResult ExecuteCommand < TResult > (
428+ Session session , DbCommand command , CommandBehavior commandBehavior , Func < DbCommand , CommandBehavior , TResult > action )
434429 {
435430 if ( isLoggingEnabled ) {
436431 SqlLog . Info ( Strings . LogSessionXQueryY , session . ToStringSafely ( ) , command . ToHumanReadableString ( ) ) ;
@@ -440,7 +435,7 @@ private TResult ExecuteCommand<TResult>(Session session, DbCommand command, Func
440435
441436 TResult result ;
442437 try {
443- result = action . Invoke ( command ) ;
438+ result = action . Invoke ( command , commandBehavior ) ;
444439 }
445440 catch ( Exception exception ) {
446441 var wrapped = ExceptionBuilder . BuildException ( exception , command . ToHumanReadableString ( ) ) ;
@@ -453,8 +448,9 @@ private TResult ExecuteCommand<TResult>(Session session, DbCommand command, Func
453448 return result ;
454449 }
455450
456- private async Task < TResult > ExecuteCommandAsync < TResult > ( Session session , DbCommand command ,
457- CancellationToken cancellationToken , Func < DbCommand , CancellationToken , Task < TResult > > action )
451+ private async Task < TResult > ExecuteCommandAsync < TResult > ( Session session ,
452+ DbCommand command , CommandBehavior commandBehavior ,
453+ CancellationToken cancellationToken , Func < DbCommand , CommandBehavior , CancellationToken , Task < TResult > > action )
458454 {
459455 if ( isLoggingEnabled ) {
460456 SqlLog . Info ( Strings . LogSessionXQueryY , session . ToStringSafely ( ) , command . ToHumanReadableString ( ) ) ;
@@ -465,7 +461,7 @@ private async Task<TResult> ExecuteCommandAsync<TResult>(Session session, DbComm
465461
466462 TResult result ;
467463 try {
468- result = await action ( command , cancellationToken ) . ConfigureAwait ( false ) ;
464+ result = await action ( command , commandBehavior , cancellationToken ) . ConfigureAwait ( false ) ;
469465 }
470466 catch ( OperationCanceledException ) {
471467 throw ;
0 commit comments