public void AddCreateForeignKeyBatch(ForeignKey key, QuoteType quoteType = QuoteType.NotQuoted) { var first = key.ForeignKeyColumns.FirstOrDefault(); var pkTable = key.Parent.Parent.Tables.FirstOrDefault(t => t.Name == key.PkTable); ForeignKeyConstraintDefinition uniqueConstraint = ScriptFactory.ForeignKeyConstraintDefinition( ScriptFactory.Identifier(key.Name, quoteType), false, Generator.GenerateSchemaObjectName(pkTable, quoteType), DeleteUpdateAction.NotSpecified, DeleteUpdateAction.NotSpecified, key.ForeignKeyColumns.Select(fkc => ScriptFactory.Identifier(fkc.FkColumn, quoteType)), key.ForeignKeyColumns.Select(fkc => ScriptFactory.Identifier(fkc.PkColumn, quoteType)) ); AddBatch(ScriptFactory.AlterTableAddTableElement( ScriptFactory.TableDefinition( null, null, new List <ConstraintDefinition> { uniqueConstraint }, null), Generator.GenerateSchemaObjectName(key.Parent, quoteType))); }