private void Close()
 {
     // ReSharper disable EmptyGeneralCatchClause
     try { this.executeReaderContext?.Dispose(); } catch { }
     try { this.transactionExecutionContextAcquisition?.Dispose(); } catch { }
     this.dataReader = null;
     this.transactionExecutionContextAcquisition = null;
     // ReSharper restore EmptyGeneralCatchClause
 }
        public ObjectProjectionAsyncEnumerator(ObjectProjector <T, U, C> objectProjector)
        {
            this.objectProjector = objectProjector;

            try
            {
                this.transactionExecutionContextAcquisition = TransactionContext
                                                              .Acquire(this.objectProjector.DataAccessModel, false);
            }
            catch
            {
                this.Dispose();

                throw;
            }
        }