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, "})"); }