private void GetTables() { var command = _connection.CreateCommand(); command.CommandText = "SELECT schema_name(t.schema_id) AS [schema], t.name FROM sys.tables AS t " + $"WHERE t.name <> '{HistoryRepository.DefaultTableName}'"; using (var reader = command.ExecuteReader()) { while (reader.Read()) { var table = new TableModel { SchemaName = reader.GetString(0), Name = reader.GetString(1) }; if (_tableSelectionSet.Allows(table.SchemaName, table.Name)) { _databaseModel.Tables.Add(table); _tables[TableKey(table)] = table; } } } }
private void GetSqliteMaster() { var command = _connection.CreateCommand(); command.CommandText = "SELECT type, name, sql, tbl_name FROM sqlite_master ORDER BY type DESC"; using (var reader = command.ExecuteReader()) { while (reader.Read()) { var type = reader.GetString(0); var name = reader.GetString(1); var sql = reader.GetValue(2) as string; // can be null var tableName = reader.GetString(3); if (type == "table" && name != "sqlite_sequence" && _tableSelectionSet.Allows(name)) { var table = new TableModel { Name = name }; _databaseModel.Tables.Add(table); _tables.Add(name, table); _tableDefinitions[name] = sql; } else if (type == "index" && _tables.ContainsKey(tableName)) { var table = _tables[tableName]; table.Indexes.Add(new IndexModel { Name = name, Table = table }); _indexDefinitions[name] = sql; } } } }