protected override void AddForeignKeySettingsMultiColumn(StringBuilder sb, DocumenterHelper helper, ForeignKey fkOnColumn)
        {
            sb.AppendLine(";")
            .AppendLine("")
            .AppendLine("#pragma warning disable IDE1006 // Naming Styles")
            .Append(2, "public ForeignKey ")
            .Append(fkOnColumn.Name)
            .Append(" { get; } = ")
            .Append(Version)
            .Append(".SetForeignKeyTo(nameof(")
            .Append(helper.GetSimplifiedSchemaAndTableName(fkOnColumn.ReferredTable.SchemaAndTableName, DatabaseDeclaration.SchemaTableNameSeparator.ToString(CultureInfo.InvariantCulture)))
            .Append("), ")
            .AppendLine("new []")
            .AppendLine("#pragma warning restore IDE1006 // Naming Styles")
            .AppendLine(3, "{");

            foreach (var fkColumnMap in fkOnColumn.ForeignKeyColumns)
            {
                sb.Append(4, "new ColumnReference(")
                .Append("nameof(")
                .Append(fkColumnMap.ForeignKeyColumn.Name)
                .Append("), nameof(")
                .Append(fkColumnMap.ReferredColumn.Table.SchemaAndTableName)
                .Append('.')
                .Append(fkColumnMap.ReferredColumn.Name)
                .AppendLine(")),");
            }

            sb.Append(3, "})");
        }
        protected virtual void AddForeignKeySettingsSingleColumn(StringBuilder sb, DocumenterHelper helper, ForeignKey fkOnColumn)
        {
            var tableName = helper.GetSimplifiedSchemaAndTableName(fkOnColumn.ReferredTable.SchemaAndTableName, DatabaseDeclaration.SchemaTableNameSeparator.ToString(CultureInfo.InvariantCulture));

            sb.Append(".SetForeignKeyToColumn(nameof(")
            .Append(DatabaseName)
            .Append('.')
            .Append(tableName)
            .Append("), nameof(")
            .Append(tableName)
            .Append("Table.")
            .Append(fkOnColumn.ForeignKeyColumns[0].ReferredColumn.Name)
            .Append(')');

            // table.AddInt("PrimaryId").SetForeignKeyToTable(nameof(Primary), new SqlEngineVersionSpecificProperty(MsSqlVersion.MsSql2016, "Nocheck", "true")
            sb.Append(AddSqlEngineVersionSpecificProperties(fkOnColumn.SqlEngineVersionSpecificProperties));

            sb.Append(')');
        }
        protected override void AddForeignKeySettingsMultiColumn(StringBuilder sb, DocumenterHelper helper, ForeignKey fkOnColumn)
        {
            sb.AppendLine(";")
            .Append(3, "table.SetForeignKeyTo(nameof(")
            .Append(helper.GetSimplifiedSchemaAndTableName(fkOnColumn.ReferredTable.SchemaAndTableName, DatabaseDeclaration.SchemaTableNameSeparator.ToString(CultureInfo.InvariantCulture)))
            .AppendLine("), ");

            sb.Append("new []")
            .AppendLine(4, "{");

            foreach (var fkColumnMap in fkOnColumn.ForeignKeyColumns)
            {
                sb.Append(5, "new ColumnReference(\"")
                .Append(fkColumnMap.ForeignKeyColumn.Name)
                .Append("\", \"")
                .Append(fkColumnMap.ReferredColumn.Name)
                .AppendLine("\"),");
            }

            sb.Append(3, "})");
        }