Ejemplo n.º 1
0
        public TSqlBuilder SetTransactionIsolationLevel(TransactionIsolationLevel transactionIsolationLevel)
        {
            var clause = new TransactionIsolationLevelClause(transactionIsolationLevel);

            _clauses.Add(clause);
            return(this);
        }
Ejemplo n.º 2
0
        protected override String GetSQLForSettingTransactionIsolationLevel(TransactionIsolationLevel level)
        {
            this.ThrowIfInTransaction("default transaction isolation level");
            String levelString;

            switch (level)
            {
            case TransactionIsolationLevel.ReadUncommitted:
                levelString = READ_UNCOMMITTED;
                break;

            case TransactionIsolationLevel.ReadCommitted:
                levelString = READ_COMMITTED;
                break;

            case TransactionIsolationLevel.RepeatableRead:
                levelString = REPEATABLE_READ;
                break;

            case TransactionIsolationLevel.Serializable:
                levelString = SERIALIZABLE;
                break;

            default:
                throw new ArgumentException("Unsupported isolation level: " + level + ".");
            }
            return(levelString);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Marks a method to run within the specified
 /// type of transactional context.
 /// </summary>
 /// <param name="transactionType">
 /// Specifies the transactional context within which the
 /// method should run.</param>
 /// <param name="transactionIsolationLevel">
 /// Specifies override for transaction isolation level.
 /// Default can be specified in .config file via CslaTransactionIsolationLevel setting
 /// If none specified, Serializable level is used
 /// </param>
 /// <param name="timeoutInSeconds">
 /// Timeout for transaction, in seconds
 /// </param>
 public TransactionalAttribute(
   TransactionalTypes transactionType,
   TransactionIsolationLevel transactionIsolationLevel,
   int timeoutInSeconds)
 {
   TransactionType = transactionType;
   TransactionIsolationLevel = transactionIsolationLevel;
   TimeoutInSeconds = timeoutInSeconds;
 }
Ejemplo n.º 4
0
        /// <summary>Creates a new UnitOfWork instance with enabled transaction, specified isolation level and transactions support.</summary>
        /// <param name="isolationLevel">The isolation level.</param>
        /// <returns>The UnitOfWork instance.</returns>
        public IUnitOfWork Create(TransactionIsolationLevel isolationLevel)
        {
            var transactionOptions = new TransactionOptions()
            {
                IsolationLevel = (IsolationLevel)isolationLevel
            };

            return(new EFUnitOfWork <TDbContext>(this._dependencyResolver, transactionOptions));
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Marks a method to run within the specified
 /// type of transactional context.
 /// </summary>
 /// <param name="transactionType">
 /// Specifies the transactional context within which the
 /// method should run.</param>
 /// <param name="transactionIsolationLevel">
 /// Specifies override for transaction isolation level.
 /// Default can be specified in .config file via CslaTransactionIsolationLevel setting
 /// If none specified, Serializable level is used
 /// </param>
 /// <param name="timeoutInSeconds">
 /// Timeout for transaction, in seconds
 /// </param>
 public TransactionalAttribute(
     TransactionalTypes transactionType,
     TransactionIsolationLevel transactionIsolationLevel,
     int timeoutInSeconds)
 {
     TransactionType           = transactionType;
     TransactionIsolationLevel = transactionIsolationLevel;
     TimeoutInSeconds          = timeoutInSeconds;
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Marks a method to run within the specified
 /// type of transactional context.
 /// </summary>
 /// <param name="transactionType">
 /// Specifies the transactional context within which the
 /// method should run.</param>
 /// <param name="transactionIsolationLevel">
 /// Specifies override for transaction isolation level.
 /// Default can be specified in .config file via CslaTransactionIsolationLevel setting
 /// If none specified, Serializable level is used
 /// </param>
 public TransactionalAttribute(
     TransactionalTypes transactionType,
     TransactionIsolationLevel transactionIsolationLevel)
 {
     TransactionType           = transactionType;
     TransactionIsolationLevel = transactionIsolationLevel;
     if (transactionType == TransactionalTypes.TransactionScope ||
         transactionType == TransactionalTypes.EnterpriseServices)
     {
         TimeoutInSeconds = ApplicationContext.DefaultTransactionTimeoutInSeconds;
     }
 }
Ejemplo n.º 7
0
        public override IUnitOfWork BeginTransaction(TransactionIsolationLevel isolationLevel)
        {
            if (this._transactionScope == null)
            {
                throw new InvalidOperationException("Transaction not initialized.");
            }

            var transactionOptions = new TransactionOptions()
            {
                IsolationLevel = (IsolationLevel)isolationLevel
            };

            return(new EFUnitOfWork <TDbContext>(this._dependencyResolver, transactionOptions, useCurrentTransaction: true));
        }
Ejemplo n.º 8
0
 private IsolationLevel GetIsolaionLevel(TransactionIsolationLevel transactionIsolationLevel)
 {
   switch (transactionIsolationLevel)
   {
     case TransactionIsolationLevel.Serializable:
       return IsolationLevel.Serializable;
     case TransactionIsolationLevel.RepeatableRead:
       return IsolationLevel.RepeatableRead;
     case TransactionIsolationLevel.ReadCommitted:
       return IsolationLevel.ReadCommitted;
     case TransactionIsolationLevel.ReadUncommitted:
       return IsolationLevel.ReadUncommitted;
     default:
       return IsolationLevel.Serializable;
   }
 }
Ejemplo n.º 9
0
        /// <summary>
        /// Marks a method to run within the specified
        /// type of transactional context.
        /// </summary>
        /// <param name="transactionType">
        /// Specifies the transactional context within which the
        /// method should run.</param>
        /// <param name="transactionIsolationLevel">
        /// Specifies override for transaction isolation level.
        /// Default can be specified in .config file via CslaTransactionIsolationLevel setting
        /// If none specified, Serializable level is used
        /// </param>
        public TransactionalAttribute(
            TransactionalTypes transactionType,
            TransactionIsolationLevel transactionIsolationLevel)
        {
            TransactionType           = transactionType;
            TransactionIsolationLevel = transactionIsolationLevel;
#if NETSTANDARD2_0 || NET5_0 || NET6_0
            if (transactionType == TransactionalTypes.TransactionScope)
#else
            if (transactionType == TransactionalTypes.TransactionScope ||
                transactionType == TransactionalTypes.EnterpriseServices)
#endif
            {
                TimeoutInSeconds = ApplicationContext.DefaultTransactionTimeoutInSeconds;
            }
        }
        private IsolationLevel GetIsolaionLevel(TransactionIsolationLevel transactionIsolationLevel)
        {
            switch (transactionIsolationLevel)
            {
            case TransactionIsolationLevel.Serializable:
                return(IsolationLevel.Serializable);

            case TransactionIsolationLevel.RepeatableRead:
                return(IsolationLevel.RepeatableRead);

            case TransactionIsolationLevel.ReadCommitted:
                return(IsolationLevel.ReadCommitted);

            case TransactionIsolationLevel.ReadUncommitted:
                return(IsolationLevel.ReadUncommitted);

            default:
                return(IsolationLevel.Serializable);
            }
        }
Ejemplo n.º 11
0
 public TransactionIsolationLevelClause(TransactionIsolationLevel transactionIsolationLevel)
 {
     _transactionIsolationLevel = transactionIsolationLevel;
 }
        public IUnitOfWork Create(TransactionIsolationLevel isolationLevel, TimeSpan timeout)
        {
            Contract.Ensures(Contract.Result<IUnitOfWork>() != null);

            return default(IUnitOfWork);
        }
Ejemplo n.º 13
0
 public ITransaction CreateProcessingTransaction(TransactionIsolationLevel jobTransactionIsolationLevel, TimeSpan jobTimeout)
 {
     var isolationLevel = (IsolationLevel) jobTransactionIsolationLevel;
     return new FatQueueTransaction(isolationLevel, jobTimeout, _connectionFactory, TransactionScopeOption.RequiresNew);
 }
Ejemplo n.º 14
0
 public abstract IUnitOfWork BeginTransaction(TransactionIsolationLevel isolationLevel, TimeSpan timeout);
Ejemplo n.º 15
0
   /// <summary>
   /// Marks a method to run within the specified
   /// type of transactional context.
   /// </summary>
   /// <param name="transactionType">
   /// Specifies the transactional context within which the
   /// method should run.</param>
   /// <param name="transactionIsolationLevel">
   /// Specifies override for transaction isolation level.
   /// Default can be specified in .config file via CslaTransactionIsolationLevel setting
   /// If none specified, Serializable level is used
   /// </param>
   public TransactionalAttribute(
 TransactionalTypes transactionType,
 TransactionIsolationLevel transactionIsolationLevel)
   {
       TransactionType = transactionType;
         TransactionIsolationLevel = transactionIsolationLevel;
         if (transactionType == TransactionalTypes.TransactionScope ||
       transactionType == TransactionalTypes.EnterpriseServices)
         {
       TimeoutInSeconds = ApplicationContext.DefaultTransactionTimeoutInSeconds;
         }
   }
        public IUnitOfWork Create(TransactionIsolationLevel isolationLevel, TimeSpan timeout)
        {
            Contract.Ensures(Contract.Result <IUnitOfWork>() != null);

            return(default(IUnitOfWork));
        }
Ejemplo n.º 17
0
        public IUnitOfWork BeginTransaction(TransactionIsolationLevel isolationLevel)
        {
            Contract.Ensures(Contract.Result <IUnitOfWork>() != null);

            return(default(IUnitOfWork));
        }
Ejemplo n.º 18
0
 public async Task SetDefaultTransactionIsolationLevelAsync(TransactionIsolationLevel level)
 {
     await this.ExecuteNonQueryAsync(this.GetSQLForSettingTransactionIsolationLevel( level ), () => this.TransactionIsolationLevelProperty = level);
 }
Ejemplo n.º 19
0
 protected abstract String GetSQLForSettingTransactionIsolationLevel(TransactionIsolationLevel level);
	public TransactionAttribute(TransactionOption val)
			{
				this.val = val;
				this.isolation = TransactionIsolationLevel.Serializable;
				this.timeout = -1;
			}
Ejemplo n.º 21
0
 /// <summary>
 /// Sets the default transaction isolation level.
 /// </summary>
 /// <param name="level">The default transaction isolation level</param>
 public ICslaConfiguration DefaultTransactionIsolationLevel(TransactionIsolationLevel level)
 {
     ConfigurationManager.AppSettings["CslaDefaultTransactionIsolationLevel"] = level.ToString();
     return(RootConfiguration);
 }
 public TransactionAttribute(TransactionOption val)
 {
     this.isolation = TransactionIsolationLevel.Serializable;
     this.timeout   = -1;
     this.val       = val;
 }
Ejemplo n.º 23
0
 /// <summary>
 /// Sets the default transaction isolation level.
 /// </summary>
 /// <param name="level">The default transaction isolation level</param>
 public DataOptions DefaultTransactionIsolationLevel(TransactionIsolationLevel level)
 {
     ApplicationContext.DefaultTransactionIsolationLevel = level;
     return(this);
 }
Ejemplo n.º 24
0
 public TransactionAttribute(TransactionOption val)
 {
     this._value     = val;
     this._isolation = TransactionIsolationLevel.Serializable;
     this._timeout   = -1;
 }
Ejemplo n.º 25
0
 /// <summary>
 /// Sets the default transaction isolation level.
 /// </summary>
 /// <param name="level">The default transaction isolation level</param>
 public ICslaConfiguration DefaultTransactionIsolationLevel(TransactionIsolationLevel level)
 {
     ApplicationContext.DefaultTransactionIsolationLevel = level;
     return(RootConfiguration);
 }
Ejemplo n.º 26
0
 public abstract IUnitOfWork BeginTransaction(TransactionIsolationLevel isolationLevel);