protected override IDbTransaction BeginTransaction() { //只要找到一个当前数据库的连接管理对象,直到发生 Dispose 前, //这个连接都一直不会被关闭,那么代码块中的数据访问方法都是使用同一个打开的连接。 //这样就不会升级为分布式事务。 _conMgr = TransactionDependentConnectionManager.GetManager(this.DbSetting); return(_conMgr.Connection.BeginTransaction(this.IsolationLevel)); }
internal ManagedConnectionDbAccesser(DbSetting dbSetting) { if (dbSetting == null) { throw new ArgumentNullException("dbSetting"); } _connectionManager = TransactionDependentConnectionManager.GetManager(dbSetting); _dba = new DbAccesser(dbSetting, _connectionManager.Connection); }