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 }
/// <summary> /// 注册事务因子 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="TransactionProvider"></param> /// <param name="hander"></param> public void RegisterFactor(ITransactionFactor factor) { TransactionFactors.Add(factor); }
void TryExecuteFactor(ITransactionFactor factor) { factor.FactorHost.TransactionContext = this.TransactionContext; factor.Execute(); factor.FactorHost.TransactionContext = default(ITransactionContext); }
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 }