public static SchemaExtendedReader Create(string connectionString, string providerName) { if (string.IsNullOrEmpty(providerName)) throw new ArgumentNullException("providerName", "providerName must not be empty"); SchemaExtendedReader schemaReader = null; var type = ProviderToSqlType.Convert(providerName); switch (type) { case SqlType.Oracle: schemaReader = new OracleSchemaReader(connectionString, providerName); break; case SqlType.SqlServer: schemaReader = new SqlAzureOrSqlServerSchemaReader(connectionString, providerName); break; case SqlType.SqlServerCe: schemaReader = new SqlServerCeSchemaReader(connectionString, providerName); break; case SqlType.MySql: schemaReader = new MySqlSchemaReader(connectionString, providerName); break; case SqlType.PostgreSql: schemaReader = new PostgreSqlSchemaReader(connectionString, providerName); break; case SqlType.Db2: schemaReader = new Db2SchemaReader(connectionString, providerName); break; default: //all the other types if (providerName.Equals("Ingres.Client", StringComparison.OrdinalIgnoreCase)) { schemaReader = new IngresSchemaReader(connectionString, providerName); } else if (providerName.Equals("iAnyWhere.Data.SQLAnyWhere", StringComparison.OrdinalIgnoreCase)) { schemaReader = new SybaseAsaSchemaReader(connectionString, providerName); } else if (providerName.Equals("Sybase.Data.AseClient", StringComparison.OrdinalIgnoreCase)) { schemaReader = new SybaseAseSchemaReader(connectionString, providerName); } else if (providerName.Equals("iAnyWhere.Data.UltraLite", StringComparison.OrdinalIgnoreCase)) { schemaReader = new SybaseUltraLiteSchemaReader(connectionString, providerName); } else if (providerName.Equals("System.Data.OleDb", StringComparison.OrdinalIgnoreCase)) { schemaReader = new OleDbSchemaReader(connectionString, providerName); } else if (providerName.Equals("System.Data.VistaDB", StringComparison.OrdinalIgnoreCase)) { schemaReader = new VistaDbSchemaReader(connectionString, providerName); } else if (providerName.Equals("IBM.Data.DB2.iSeries", StringComparison.OrdinalIgnoreCase)) { schemaReader = new Db2ISeriesSchemaReader(connectionString, providerName); } else if (providerName.Equals("FirebirdSql.Data.FirebirdClient", StringComparison.OrdinalIgnoreCase)) { schemaReader = new FirebirdSqlSchemaReader(connectionString, providerName); } break; } if (schemaReader == null) { schemaReader = new SchemaExtendedReader(connectionString, providerName); } return schemaReader; }
public static SchemaExtendedReader Create(string connectionString, string providerName) { if (string.IsNullOrEmpty(providerName)) { throw new ArgumentNullException("providerName", "providerName must not be empty"); } SchemaExtendedReader schemaReader = null; var type = ProviderToSqlType.Convert(providerName); switch (type) { case SqlType.Oracle: schemaReader = new OracleSchemaReader(connectionString, providerName); break; case SqlType.SqlServer: schemaReader = new SqlAzureOrSqlServerSchemaReader(connectionString, providerName); break; case SqlType.SqlServerCe: schemaReader = new SqlServerCeSchemaReader(connectionString, providerName); break; case SqlType.MySql: schemaReader = new MySqlSchemaReader(connectionString, providerName); break; case SqlType.PostgreSql: schemaReader = new PostgreSqlSchemaReader(connectionString, providerName); break; case SqlType.Db2: schemaReader = new Db2SchemaReader(connectionString, providerName); break; default: //all the other types if (providerName.Equals("Ingres.Client", StringComparison.OrdinalIgnoreCase)) { schemaReader = new IngresSchemaReader(connectionString, providerName); } else if (providerName.Equals("iAnyWhere.Data.SQLAnyWhere", StringComparison.OrdinalIgnoreCase)) { schemaReader = new SybaseAsaSchemaReader(connectionString, providerName); } else if (providerName.Equals("Sybase.Data.AseClient", StringComparison.OrdinalIgnoreCase)) { schemaReader = new SybaseAseSchemaReader(connectionString, providerName); } else if (providerName.Equals("iAnyWhere.Data.UltraLite", StringComparison.OrdinalIgnoreCase)) { schemaReader = new SybaseUltraLiteSchemaReader(connectionString, providerName); } else if (providerName.Equals("System.Data.OleDb", StringComparison.OrdinalIgnoreCase)) { schemaReader = new OleDbSchemaReader(connectionString, providerName); } else if (providerName.Equals("System.Data.VistaDB", StringComparison.OrdinalIgnoreCase)) { schemaReader = new VistaDbSchemaReader(connectionString, providerName); } else if (providerName.Equals("IBM.Data.DB2.iSeries", StringComparison.OrdinalIgnoreCase)) { schemaReader = new Db2ISeriesSchemaReader(connectionString, providerName); } else if (providerName.Equals("FirebirdSql.Data.FirebirdClient", StringComparison.OrdinalIgnoreCase)) { schemaReader = new FirebirdSqlSchemaReader(connectionString, providerName); } break; } if (schemaReader == null) { schemaReader = new SchemaExtendedReader(connectionString, providerName); } return(schemaReader); }