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; }
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(); }
public TransactionLock(ICascadeLock CascadeLock) { this.CascadeLock = CascadeLock; }