コード例 #1
0
        public override void GetCreationScript(StringBuilder source)
        {
            var primaryKeyFieldName = GetPrimaryKeyField();
            var columnBuilder       = new StringBuilder();

            using (var dRead = GetReader(PostgresQueries.GetAllTableColumns(Schema, Table)))
            {
                while (dRead.Read())
                {
                    var columName  = dRead[ColumnName].ToString();
                    var columnType = dRead[DataType].ToString().ToUpper();

                    if (string.Equals(columName, primaryKeyFieldName, StringComparison.InvariantCulture))
                    {
                        columnType = columnType == "INTEGER" ? "SERIAL" : "BIGSERIAL";
                    }
                    columnBuilder.AppendLine($"{columName} {columnType} {NullDefine(dRead[IsNull])},");
                }
                if (!string.IsNullOrEmpty(primaryKeyFieldName))
                {
                    columnBuilder.AppendLine(TablePrimaryKeyConstraint(primaryKeyFieldName));
                }

                CreateTableFromTemplate(source, columnBuilder);
            }
        }
コード例 #2
0
        private string[] GetTableColumns()
        {
            var columns = new List <string>();

            using (var dRead = GetReader(PostgresQueries.GetAllTableColumns(Schema, Table)))
            {
                while (dRead.Read())
                {
                    columns.Add(dRead[ColumnName].ToString());
                }
            }
            return(columns.ToArray());
        }