Exemplo n.º 1
0
        public DataAccessManager(DatabaseType Type, String ConnectionString, ICascadeLock CascadeLock)
        {
            Type t = null;

            if (Type == DatabaseType.Memory)
            {
                t = GetType(MemoryType, true);
            }
            else if (Type == DatabaseType.SqlServer)
            {
                t = GetType(SqlServerType, true);
            }
            else if (Type == DatabaseType.MySQL)
            {
                t = GetType(MySqlType, true);
            }
            else if (Type == DatabaseType.Krustallos)
            {
                t = GetType(KrustallosType, true);
            }
            else
            {
                throw new InvalidOperationException();
            }
            var o = Activator.CreateInstance(t);
            var p = (IDataAccessProvider)(o);
            var c = p.GetConnectionFactory();

            ConnectionFactory = () => c(ConnectionString, CascadeLock != null ? new TransactionLock(new BaseSystem.TransactionLock(CascadeLock)) : null);
            IsRetryable       = p.GetIsRetryable();
            Dispose           = p.Dispose;
        }
Exemplo n.º 2
0
        public DataAccessManager(String ConnectionString, ICascadeLock CascadeLock)
        {
            Type t = null;

            if (t == null)
            {
                t = GetType(MemoryType);
            }
            if (t == null)
            {
                t = GetType(SqlServerType);
            }
            if (t == null)
            {
                t = GetType(MySqlType);
            }
            if (t == null)
            {
                t = GetType(KrustallosType);
            }
            if (t != null)
            {
                var o = Activator.CreateInstance(t);
                var p = (IDataAccessProvider)(o);
                var c = p.GetConnectionFactory();
                ConnectionFactory = () => c(ConnectionString, CascadeLock != null ? new TransactionLock(new BaseSystem.TransactionLock(CascadeLock)) : null);
                IsRetryable       = p.GetIsRetryable();
                Dispose           = p.Dispose;
                return;
            }
            throw new InvalidOperationException();
        }
Exemplo n.º 3
0
 public TransactionLock(ICascadeLock CascadeLock)
 {
     this.CascadeLock = CascadeLock;
 }