예제 #1
0
        void GetColumns()
        {
            foreach (var x in _tables)
            {
                using (var command = new FbCommand(string.Format(_getColumnsQuery, x.Key), _connection))
                    using (var reader = command.ExecuteReader())
                        while (reader.Read())
                        {
                            var column = new DatabaseColumn
                            {
                                Table           = x.Value,
                                Name            = reader.GetString(0).Trim(),
                                StoreType       = reader.GetString(1).Trim(),
                                IsNullable      = reader.GetString(2).Trim() == "YES",
                                DefaultValueSql = reader[3].ToString() == "" ? null : reader[3].ToString(),
                            };

                            if (!string.IsNullOrEmpty(reader.GetString(4)))
                            {
                                column.AddAnnotation("Description", reader.GetString(4).Trim().Replace(Environment.NewLine, "; "));
                            }

                            x.Value.Columns.Add(column);
                        }
                Logger.LogDebug($"GetColumns => {x.Value.Columns.Count} columns for table {x.Value.Name}");
            }
        }