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