/// <inheritdoc /> public IEnumerable <IDbViewEntity> GetViews(IDbDatabaseEntity database) { ISqlObject table = new SqlServerSource(new SqlServerSource("INFORMATION_SCHEMA"), "VIEWS"); ISqlObject nameField = new SqlServerField(table, "TABLE_NAME", null); ISqlObject schemaField = new SqlServerField(table, "TABLE_SCHEMA", null); ISqlSelectStatement statement = new SqlServerSelectStatement(); statement.FromClause.Source = table; statement.SelectClause.AddExpressions(nameField); statement.SelectClause.AddExpressions(schemaField); SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(); builder.DataSource = database.Source.Name; builder.InitialCatalog = database.Name; if (!(builder.IntegratedSecurity = database.Source.DbCredential.IntegratedSecurity)) { builder.UserID = database.Source.DbCredential.UserName; builder.Password = database.Source.DbCredential.Password; } ICollection <IDbViewEntity> views = new List <IDbViewEntity>(); using (IDataReader reader = SqlHelper.ExecuteSelect(new SqlConnection(builder.ConnectionString), statement)) { while (reader.Read()) { views.Add(new SqlServerViewEntity(database, reader.GetString(0), reader.GetString(1), new SqlServerViewFieldProvider())); } } return(views); }
public SqlServerViewEntity(IDbDatabaseEntity database, string name, string schema, IDbViewFieldProvider fieldProvider) : base(database, name, schema, fieldProvider) { }