Beispiel #1
0
        protected static ColumnDocumentInfo GetColumnDocumentInfo(List <PrimaryKey> pks, SqlColumn column)
        {
            var info = new ColumnDocumentInfo();

            var descriptionProperty = column.Properties.OfType <SqlColumnDescription>().FirstOrDefault();

            info.Description = "";
            if (descriptionProperty != null)
            {
                info.Description = descriptionProperty.Description;
            }

            info.IsPk         = pks.Any(pk => pk.SqlColumns.Any(cao => cao.SqlColumn == column));
            info.Identity     = column.Properties.OfType <Identity>().FirstOrDefault();
            info.DefaultValue = column.Properties.OfType <DefaultValue>().FirstOrDefault();

            return(info);
        }
Beispiel #2
0
        protected void AddColumnsToTableSheet(SqlColumn column, ColumnDocumentInfo columnDocumentInfo, string firstColumn = null)
        {
            var table   = column.Table;
            var sqlType = column.Type;

            if (firstColumn != null)
            {
                Write(table.SchemaAndTableName, firstColumn);
            }

            if (!Context.DocumenterSettings.NoInternalDataTypes)
            {
                Write(table.SchemaAndTableName, column.Name, sqlType.SqlTypeInfo.SqlDataType, sqlType.SqlTypeInfo.SqlDataType, sqlType.Length, sqlType.Scale, sqlType.IsNullable);
            }
            else
            {
                Write(table.SchemaAndTableName, column.Name, sqlType, sqlType.Length, sqlType.Scale, sqlType.IsNullable);
            }

            if (columnDocumentInfo.IsPk)
            {
                Write(table.SchemaAndTableName, true);
            }
            else
            {
                Write(table.SchemaAndTableName, "");
            }

            if (columnDocumentInfo.Identity != null)
            {
                Write(table.SchemaAndTableName, $"IDENTITY ({columnDocumentInfo.Identity.Seed.ToString("D", CultureInfo.InvariantCulture)}, {columnDocumentInfo.Identity.Increment.ToString("D", CultureInfo.InvariantCulture)})");
            }
            else
            {
                Write(table.SchemaAndTableName, "");
            }

            if (columnDocumentInfo.DefaultValue != null)
            {
                Write(table.SchemaAndTableName, columnDocumentInfo.DefaultValue);
            }
            else
            {
                Write(table.SchemaAndTableName, "");
            }

            Write(table.SchemaAndTableName, columnDocumentInfo.Description.Trim());

            // "Foreign Key Name", "Referenced Table", "Link", "Referenced Column"
            var fkOnColumn = table.Properties.OfType <ForeignKey>().FirstOrDefault(fk => fk.ForeignKeyColumns.Any(fkc => fkc.ForeignKeyColumn.Name == column.Name));

            if (fkOnColumn != null)
            {
                Write(table.SchemaAndTableName, fkOnColumn.Name);
                Write(table.SchemaAndTableName,
                      Helper.GetSimplifiedSchemaAndTableName(fkOnColumn.ReferredTable.SchemaAndTableName));
                WriteLink(table.SchemaAndTableName, "link", fkOnColumn.ReferredTable.SchemaAndTableName);
                Write(table.SchemaAndTableName, fkOnColumn.ForeignKeyColumns.First(fkc => fkc.ForeignKeyColumn.Name == column.Name).ReferredColumn.Name);
            }

            WriteLine(table.SchemaAndTableName);
        }