Пример #1
0
 void FactorValidation(ITransactionFactor factor)
 {
     #region 验证事务因子的数据连接是否一致
     DbConnection connection = factor.FactorHost.CreateConnection();
     if (connection == default(DbConnection))
     {
         throw new ArgumentNullException(string.Format("事务接口提供者没有创建有效地数据连接:{0}", factor.FactorHost.GetType()));
     }
     ConnectionCompare ConnectionCompare = new ConnectionCompare()
     {
         Database   = connection.Database,
         DataSource = connection.DataSource,
         Connection = connection
     };
     //第一个事务处理者
     if (this.CurrentConnectionCompare == default(ConnectionCompare))
     {
         this.CurrentConnectionCompare = ConnectionCompare;
     }
     else
     {
         if (this.CurrentConnectionCompare.Compare(ConnectionCompare))
         {
             this.CurrentConnectionCompare = ConnectionCompare;
         }
         else
         {
             throw new ApplicationException("事务因子的数据连接一致性不够");
         }
     }
     #endregion
 }
Пример #2
0
 /// <summary>
 /// 注册事务因子
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="TransactionProvider"></param>
 /// <param name="hander"></param>
 public void RegisterFactor(ITransactionFactor factor)
 {
     TransactionFactors.Add(factor);
 }
Пример #3
0
 void TryExecuteFactor(ITransactionFactor factor)
 {
     factor.FactorHost.TransactionContext = this.TransactionContext;
     factor.Execute();
     factor.FactorHost.TransactionContext = default(ITransactionContext);
 }
Пример #4
0
 void FactorValidation(ITransactionFactor factor)
 {
     #region 验证事务因子的数据连接是否一致
     DbConnection connection = factor.FactorHost.CreateConnection();
     if (connection == default(DbConnection))
         throw new ArgumentNullException(string.Format("事务接口提供者没有创建有效地数据连接:{0}", factor.FactorHost.GetType()));
     ConnectionCompare ConnectionCompare = new ConnectionCompare()
     {
         Database = connection.Database,
         DataSource = connection.DataSource,
         Connection = connection
     };
     //第一个事务处理者
     if (this.CurrentConnectionCompare == default(ConnectionCompare))
     {
         this.CurrentConnectionCompare = ConnectionCompare;
     }
     else
     {
         if (this.CurrentConnectionCompare.Compare(ConnectionCompare))
         {
             this.CurrentConnectionCompare = ConnectionCompare;
         }
         else
         {
             throw new ApplicationException("事务因子的数据连接一致性不够");
         }
     }
     #endregion
 }
Пример #5
0
        /// <summary>
        /// 注册事务因子
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="TransactionProvider"></param>
        /// <param name="hander"></param>

        public void RegisterFactor(ITransactionFactor factor)
        {
            TransactionFactors.Add(factor);
        }
Пример #6
0
 void TryExecuteFactor(ITransactionFactor factor)
 {
     factor.FactorHost.TransactionContext = this.TransactionContext;
     factor.Execute();
     factor.FactorHost.TransactionContext = default(ITransactionContext);
 }