Beispiel #1
0
 public async Task ExecuteAsync()
 {
     try
     {
         IQueryProvider queryProvider = _transactionController?.Transaction;
         if (queryProvider == null)
         {
             queryProvider = DataProvider;
         }
         using (var queryResult = await queryProvider.ExecuteReaderAsync(ComposeQuery()))
         {
             foreach (var query in _queries)
             {
                 if (query.ProducesResultSet)
                 {
                     if (query.ResultSetProcessor != null)
                     {
                         await query.ResultSetProcessor.ProcessResultAsync(queryResult);
                     }
                     await queryResult.NextResultAsync();
                 }
             }
         }
     }
     catch
     {
         foreach (var query in _queries)
         {
             query.ResultSetProcessor?.HandleFailure();
         }
         throw;
     }
 }