/// <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);
        }
Example #2
0
 public SqlServerViewEntity(IDbDatabaseEntity database, string name, string schema, IDbViewFieldProvider fieldProvider)
     : base(database, name, schema, fieldProvider)
 {
 }