public DatabaseConnectionFactory(IDbConnectionFactory dbConnectionFactory, IDbCommandFactory dbCommandFactory, IDatabaseConnectionCache databaseConnectionCache) { Guard.AgainstNull(dbConnectionFactory, "dbConnectionFactory"); Guard.AgainstNull(dbCommandFactory, "dbCommandFactory"); Guard.AgainstNull(databaseConnectionCache, "databaseConnectionCache"); _dbConnectionFactory = dbConnectionFactory; _databaseConnectionCache = databaseConnectionCache; _dbCommandFactory = dbCommandFactory; _log = Log.For(this); }
public DatabaseConnection(DataSource dataSource, IDbConnection connection, IDbCommandFactory dbCommandFactory, IDatabaseConnectionCache databaseConnectionCache, bool ownedConnection = true, IDbTransaction currentTransaction = null) { Guard.AgainstNull(dataSource, "dataSource"); Guard.AgainstNull(connection, "connection"); Guard.AgainstNull(dbCommandFactory, "dbCommandFactory"); Guard.AgainstNull(databaseConnectionCache, "databaseConnectionCache"); _dataSource = dataSource; _dbCommandFactory = dbCommandFactory; _databaseConnectionCache = databaseConnectionCache; Connection = connection; _ownedConnection = ownedConnection; Transaction = currentTransaction; _ownedTransaction = currentTransaction == null; _log = Log.For(this); _log.Verbose(string.Format(DataResources.DbConnectionCreated, dataSource.Name)); try { if (connection.State == ConnectionState.Closed) { Connection.Open(); _log.Verbose(string.Format(DataResources.DbConnectionOpened, dataSource.Name)); } else { _log.Verbose(string.Format(DataResources.DbConnectionAlreadyOpen, dataSource.Name)); } } catch (Exception ex) { _log.Error(string.Format(DataResources.DbConnectionOpenException, dataSource.Name, ex.Message)); throw; } databaseConnectionCache.Add(dataSource, this); }