public static SchemaExtendedReader Create(string connectionString, SqlType sqlType) { SchemaExtendedReader schemaReader; switch (sqlType) { case SqlType.Oracle: schemaReader = new OracleSchemaReader(connectionString, "System.Data.OracleClient"); break; case SqlType.SqlServer: schemaReader = new SqlAzureOrSqlServerSchemaReader(connectionString, "System.Data.SqlClient"); break; case SqlType.SqlServerCe: schemaReader = new SqlServerCeSchemaReader(connectionString, "System.Data.SqlServerCe.4.0"); break; case SqlType.MySql: schemaReader = new MySqlSchemaReader(connectionString, "MySql.Data.MySqlClient"); break; case SqlType.PostgreSql: schemaReader = new PostgreSqlSchemaReader(connectionString, "Npgsql"); break; case SqlType.Db2: schemaReader = new Db2SchemaReader(connectionString, "IBM.Data.DB2"); break; case SqlType.SQLite: schemaReader = new SchemaExtendedReader(connectionString, "System.Data.SQLite"); break; default: throw new ArgumentOutOfRangeException("sqlType", "Not a recognized SqlType"); } 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); }