public InterceptionResult <DbTransaction> TransactionStarting(DbConnection connection,
                                                                      TransactionStartingEventData eventData,
                                                                      InterceptionResult <DbTransaction> result)
        {
            TrackEvent(nameof(TransactionStarting), connection, eventData.ConnectionId, eventData.StartTime);

            return(result);
        }
コード例 #2
0
            public override InterceptionResult <DbTransaction>?TransactionStarting(
                DbConnection connection,
                TransactionStartingEventData eventData,
                InterceptionResult <DbTransaction>?result)
            {
                base.TransactionStarting(connection, eventData, result);

                return(new InterceptionResult <DbTransaction>(new FakeDbTransaction(connection, eventData.IsolationLevel)));
            }
コード例 #3
0
            public override async Task <InterceptionResult <DbTransaction>?> TransactionStartingAsync(
                DbConnection connection,
                TransactionStartingEventData eventData,
                InterceptionResult <DbTransaction>?result,
                CancellationToken cancellationToken = default)
            {
                await base.TransactionStartingAsync(connection, eventData, result, cancellationToken);

                return(new InterceptionResult <DbTransaction>(new FakeDbTransaction(connection, eventData.IsolationLevel)));
            }
コード例 #4
0
            public InterceptionResult <DbTransaction> TransactionStarting(
                DbConnection connection,
                TransactionStartingEventData eventData,
                InterceptionResult <DbTransaction> result)
            {
                for (var i = 0; i < _interceptors.Length; i++)
                {
                    result = _interceptors[i].TransactionStarting(connection, eventData, result);
                }

                return(result);
            }
コード例 #5
0
            public async Task <InterceptionResult <DbTransaction> > TransactionStartingAsync(
                DbConnection connection,
                TransactionStartingEventData eventData,
                InterceptionResult <DbTransaction> result,
                CancellationToken cancellationToken = default)
            {
                for (var i = 0; i < _interceptors.Length; i++)
                {
                    result = await _interceptors[i].TransactionStartingAsync(connection, eventData, result, cancellationToken);
                }

                return(result);
            }
コード例 #6
0
 protected virtual void AssertStarting(DbConnection connection, TransactionStartingEventData eventData)
 {
     Assert.NotNull(eventData.Context);
     Assert.NotEqual(default, eventData.ConnectionId);
コード例 #7
0
 /// <summary>
 ///     Called just before EF intends to call
 ///     <see cref="DbConnection.BeginTransactionAsync(IsolationLevel,CancellationToken)" />.
 /// </summary>
 /// <param name="connection">The connection.</param>
 /// <param name="eventData">Contextual information about connection and transaction.</param>
 /// <param name="result">
 ///     Represents the current result if one exists.
 ///     This value will have <see cref="InterceptionResult{DbTransaction}.HasResult" /> set to <see langword="true" /> if some previous
 ///     interceptor suppressed execution by calling <see cref="InterceptionResult{DbTransaction}.SuppressWithResult" />.
 ///     This value is typically used as the return value for the implementation of this method.
 /// </param>
 /// <param name="cancellationToken">A <see cref="CancellationToken" /> to observe while waiting for the task to complete.</param>
 /// <returns>
 ///     If <see cref="InterceptionResult{DbTransaction}.HasResult" /> is false, the EF will continue as normal.
 ///     If <see cref="InterceptionResult{DbTransaction}.HasResult" /> is true, then EF will suppress the operation it
 ///     was about to perform and use <see cref="InterceptionResult{DbTransaction}.Result" /> instead.
 ///     A normal implementation of this method for any interceptor that is not attempting to change the result
 ///     is to return the <paramref name="result" /> value passed in, often using <see cref="Task.FromResult{TResult}" />
 /// </returns>
 /// <exception cref="OperationCanceledException">If the <see cref="CancellationToken" /> is canceled.</exception>
 public virtual ValueTask <InterceptionResult <DbTransaction> > TransactionStartingAsync(
     DbConnection connection,
     TransactionStartingEventData eventData,
     InterceptionResult <DbTransaction> result,
     CancellationToken cancellationToken = default)
 => new(result);
コード例 #8
0
 /// <summary>
 ///     Called just before EF intends to call <see cref="DbConnection.BeginTransaction(IsolationLevel)" />.
 /// </summary>
 /// <param name="connection">The connection.</param>
 /// <param name="eventData">Contextual information about connection and transaction.</param>
 /// <param name="result">
 ///     Represents the current result if one exists.
 ///     This value will have <see cref="InterceptionResult{DbTransaction}.HasResult" /> set to <see langword="true" /> if some previous
 ///     interceptor suppressed execution by calling <see cref="InterceptionResult{DbTransaction}.SuppressWithResult" />.
 ///     This value is typically used as the return value for the implementation of this method.
 /// </param>
 /// <returns>
 ///     If <see cref="InterceptionResult{DbTransaction}.HasResult" /> is false, the EF will continue as normal.
 ///     If <see cref="InterceptionResult{DbTransaction}.HasResult" /> is true, then EF will suppress the operation it
 ///     was about to perform and use <see cref="InterceptionResult{DbTransaction}.Result" /> instead.
 ///     A normal implementation of this method for any interceptor that is not attempting to change the result
 ///     is to return the <paramref name="result" /> value passed in, often using <see cref="Task.FromResult{TResult}" />
 /// </returns>
 public virtual InterceptionResult <DbTransaction> TransactionStarting(
     DbConnection connection,
     TransactionStartingEventData eventData,
     InterceptionResult <DbTransaction> result)
 => result;
コード例 #9
0
        public override ValueTask <InterceptionResult <DbTransaction> > TransactionStartingAsync(DbConnection connection, TransactionStartingEventData eventData, InterceptionResult <DbTransaction> result, CancellationToken cancellationToken = default)
        {
            this.WillStartTransaction();

            return(base.TransactionStartingAsync(connection, eventData, result, cancellationToken));
        }
コード例 #10
0
        public override InterceptionResult <DbTransaction> TransactionStarting(DbConnection connection, TransactionStartingEventData eventData, InterceptionResult <DbTransaction> result)
        {
            this.WillStartTransaction();

            return(base.TransactionStarting(connection, eventData, result));
        }
 public ValueTask <InterceptionResult <DbTransaction> > TransactionStartingAsync(DbConnection connection,
                                                                                 TransactionStartingEventData eventData,
                                                                                 InterceptionResult <DbTransaction> result, CancellationToken cancellationToken = new CancellationToken())
 {
     TrackEvent(nameof(TransactionStartingAsync), connection, eventData.ConnectionId, eventData.StartTime);
     return(ValueTask.FromResult(result));
 }
コード例 #12
0
 public override async Task <InterceptionResult <DbTransaction> > TransactionStartingAsync(DbConnection connection, TransactionStartingEventData eventData, InterceptionResult <DbTransaction> result, CancellationToken cancellationToken = new CancellationToken())
 {
     return(await base.TransactionStartingAsync(connection, eventData, result, cancellationToken));
 }