Exemple #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
 }
Exemple #2
0
 private BizTransaction()
 {
     this.TransactionID = Guid.NewGuid();
     TransactionFactors = new List<ITransactionFactor>();
     this.CurrentConnectionCompare = default(ConnectionCompare);
 }
Exemple #3
0
 public bool Compare(ConnectionCompare ConnectionCompare)
 {
     return string.Equals(this.Database, ConnectionCompare.Database, StringComparison.OrdinalIgnoreCase)
         && string.Equals(this.DataSource, ConnectionCompare.DataSource, StringComparison.OrdinalIgnoreCase);
 }
Exemple #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
 }
Exemple #5
0
 private BizTransaction()
 {
     this.TransactionID            = Guid.NewGuid();
     TransactionFactors            = new List <ITransactionFactor>();
     this.CurrentConnectionCompare = default(ConnectionCompare);
 }
Exemple #6
0
 public bool Compare(ConnectionCompare ConnectionCompare)
 {
     return(string.Equals(this.Database, ConnectionCompare.Database, StringComparison.OrdinalIgnoreCase) &&
            string.Equals(this.DataSource, ConnectionCompare.DataSource, StringComparison.OrdinalIgnoreCase));
 }