Beispiel #1
0
        public DapperUnitOfWork(IConnectionStringResolver connectionStringResolver, IDbConnectionResolver dbConnectionResolver, IDapperTransactionStrategy transactionStrategy)
        {
            _connectionStringResolver = connectionStringResolver;
            _dbConnectionResolver     = dbConnectionResolver;
            _transactionStrategy      = transactionStrategy;

            _activeConnectionInfo = new Dictionary <string, IDbConnection>();
        }
 private void Initialize(IDbConnectionResolver resolver)
 {
     try
     {
         _resolver = resolver;
         _providerFactory = DbProviderFactories.GetFactory(resolver.ProviderName);
         _connection = _providerFactory.CreateConnection();
         _connection.ConnectionString = resolver.ConnectionString;
     }
     catch 
     {
         throw new DbTransactionException("Failed to initialize DbTransactionManager.");
     }
 }
Beispiel #3
0
        public virtual IDbConnection CreateDbConnection(string connectionString, IDbConnectionResolver connectionResolver, string connectionProviderName)
        {
            IDbConnection dbConnection = null;

            var activeTransaction = this.GetActiveTransactionInfo(connectionString);

            if (activeTransaction == null)
            {
                dbConnection = connectionResolver.Resolve(connectionString, this.Options, connectionProviderName);
                var dbTransaction = dbConnection.BeginTransaction(
                    (Options.IsolationLevel ?? System.Transactions.IsolationLevel.ReadUncommitted).ToSystemDataIsolationLevel()
                    );
                activeTransaction = new ActiveTransactionInfo(dbTransaction, dbConnection);
                ActiveTransactions[connectionString] = activeTransaction;
            }

            return(dbConnection);
        }
 /// <summary>
 /// Initializes a new instance of DbTransactionManager with an external IDatabaseResolver instance.
 /// </summary>
 public DbTransactionManager(IDbConnectionResolver resolver)
 {
     this.Initialize(resolver);
 }