protected override void Convert(DropForeignKeyOperation dropForeignKeyOperation) { dropForeignKeyOperation.Name = GetFkName(dropForeignKeyOperation.PrincipalTable, dropForeignKeyOperation.DependentTable, dropForeignKeyOperation.DependentColumns.ToArray()); base.Convert(dropForeignKeyOperation); }
protected virtual void Generate([NotNull] DropForeignKeyOperation operation, [NotNull] IndentedStringBuilder builder) { Check.NotNull(operation, nameof(operation)); Check.NotNull(builder, nameof(builder)); builder .Append(".DropForeignKey(name: ") .Append(_code.Literal(operation.Name)); if (operation.Schema != null) { builder .Append(", schema: ") .Append(_code.Literal(operation.Schema)); } builder .Append(", table: ") .Append(_code.Literal(operation.Table)) .Append(")"); using (builder.Indent()) { Annotations(operation.Annotations, builder); } }
public override void Generate( DropForeignKeyOperation dropForeignKeyOperation, IndentedStringBuilder stringBuilder) { // TODO: Rebuild table throw new NotImplementedException(); }
protected override void Generate(DropForeignKeyOperation dropForeignKeyOperation, IndentedTextWriter writer) { dropForeignKeyOperation.PrincipalTable = TrimSchemaPrefix(dropForeignKeyOperation.PrincipalTable); dropForeignKeyOperation.DependentTable = TrimSchemaPrefix(dropForeignKeyOperation.DependentTable); dropForeignKeyOperation.Name = PrepareSql(dropForeignKeyOperation.Name, false); base.Generate(dropForeignKeyOperation, writer); }
protected internal void DropForeignKey( string dependentTable, string[] dependentColumns, string principalTable, object anonymousArguments = null) { Check.NotEmpty(dependentTable, "dependentTable"); Check.NotNull(dependentColumns, "dependentColumns"); Check.NotEmpty(principalTable, "principalTable"); if (!dependentColumns.Any()) { throw new ArgumentException(Strings.CollectionEmpty("dependentColumns", "DropForeignKey")); } var dropForeignKeyOperation = new DropForeignKeyOperation(anonymousArguments) { DependentTable = dependentTable, PrincipalTable = principalTable }; dependentColumns.Each(c => dropForeignKeyOperation.DependentColumns.Add(c)); AddOperation(dropForeignKeyOperation); }
/// <summary> /// Generates code to perform a <see cref="DropForeignKeyOperation" />. /// </summary> /// <param name="dropForeignKeyOperation"> The operation to generate code for. </param> /// <param name="writer"> Text writer to add the generated code to. </param> protected virtual void Generate(DropForeignKeyOperation dropForeignKeyOperation, IndentedTextWriter writer) { Check.NotNull(dropForeignKeyOperation, "dropForeignKeyOperation"); Check.NotNull(writer, "writer"); writer.Write("DropForeignKey("); writer.Write(Quote(dropForeignKeyOperation.DependentTable)); writer.Write(", "); if (!dropForeignKeyOperation.HasDefaultName) { writer.Write(Quote(dropForeignKeyOperation.Name)); } else { var compositeKey = dropForeignKeyOperation.DependentColumns.Count() > 1; if (compositeKey) { writer.Write("New String() { "); } writer.Write(dropForeignKeyOperation.DependentColumns.Join(Quote)); if (compositeKey) { writer.Write(" }"); } writer.Write(", "); writer.Write(Quote(dropForeignKeyOperation.PrincipalTable)); } writer.WriteLine(")"); }
protected override MigrationStatement Generate(DropForeignKeyOperation op) { op.Name = op.Name.Replace("dbo.", ""); op.PrincipalTable = op.PrincipalTable.Replace("dbo.", ""); op.DependentTable = op.DependentTable.Replace("dbo.", ""); return(base.Generate(op)); }
protected override void Generate(DropForeignKeyOperation operation, IModel model, MigrationCommandListBuilder builder) { base.Generate(operation, model, builder, terminate: false); builder .AppendLine(Dependencies.SqlGenerationHelper.StatementTerminator) .EndCommand(suppressTransaction: IsMemoryOptimized(operation, model, operation.Schema, operation.Table)); }
protected override void Generate(DropForeignKeyOperation operation, IModel model, MigrationCommandListBuilder builder) { base.Generate(operation, model, builder, terminate: false); builder .AppendLine(Dependencies.SqlGenerationHelper.StatementTerminator) .EndCommand(); }
protected override void Generate(DropForeignKeyOperation dfo) { if (dfo.HasDefaultName) { dfo.Name = GetForeignKeyName(dfo.DependentTable, dfo.PrincipalTable, dfo.DependentColumns); } base.Generate(dfo); }
public void Create_and_initialize_operation() { var dropForeignKeyOperation = new DropForeignKeyOperation("dbo.MyTable", "MyFK"); Assert.Equal("dbo.MyTable", dropForeignKeyOperation.TableName); Assert.Equal("MyFK", dropForeignKeyOperation.ForeignKeyName); Assert.True(dropForeignKeyOperation.IsDestructiveChange); }
public override void Visit(DropForeignKeyOperation operation, Context context) { Check.NotNull(operation, "operation"); Check.NotNull(context, "context"); var handler = context.EnsureHandler(operation.TableName, supported: false); handler.AddOperation(operation); }
/// <summary> /// Generates a migration operation to drop a foreign key constraint from a table. /// </summary> /// <param name="op">The operation that represents a foreign key being added from a table.</param> /// <returns>A migration operation to drop a foreign key.</returns> protected virtual MigrationStatement Generate(DropForeignKeyOperation op) { StringBuilder sb = new StringBuilder(); sb = sb.AppendFormat("alter table `{0}` drop foreign key `{1}`", op.DependentTable, op.Name); return(new MigrationStatement { Sql = sb.ToString() }); }
public override void Visit(DropForeignKeyOperation dropForeignKeyOperation, DatabaseModel databaseModel) { Check.NotNull(dropForeignKeyOperation, "dropForeignKeyOperation"); Check.NotNull(databaseModel, "databaseModel"); var table = databaseModel.GetTable(dropForeignKeyOperation.TableName); table.RemoveForeignKey(dropForeignKeyOperation.ForeignKeyName); }
private string GenerateSqlStatementConcrete(DropForeignKeyOperation migrationOperation) { DB2DdlBuilder ddlBuilder = new DB2DdlBuilder(); ddlBuilder.AppendSql("ALTER TABLE "); ddlBuilder.AppendIdentifier(migrationOperation.PrincipalTable); ddlBuilder.AppendSql(" DROP FOREIGN KEY "); ddlBuilder.AppendIdentifier(migrationOperation.Name); return(ddlBuilder.GetCommandText()); }
public void Dispatches_visitor() { var dropForeignKeyOperation = new DropForeignKeyOperation("dbo.MyTable", "MyFK"); var mockVisitor = MigrationsTestHelpers.MockSqlGenerator(); var builder = new Mock <SqlBatchBuilder>(); dropForeignKeyOperation.GenerateSql(mockVisitor.Object, builder.Object); mockVisitor.Verify(g => g.Generate(dropForeignKeyOperation, builder.Object), Times.Once()); }
protected override void Generate(DropForeignKeyOperation operation, IModel model, MigrationCommandListBuilder builder) { builder.Append("ALTER TABLE ") .Append(Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.Table, operation.Schema)) .Append(" DROP CONSTRAINT ") .Append(Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.Name)) .AppendLine(Dependencies.SqlGenerationHelper.StatementTerminator); EndStatement(builder); }
public void Dispatches_visitor() { var dropForeignKeyOperation = new DropForeignKeyOperation("dbo.MyTable", "MyFK"); var mockVisitor = new Mock <MigrationOperationSqlGenerator>(new RelationalTypeMapper()); var builder = new Mock <IndentedStringBuilder>(); dropForeignKeyOperation.GenerateSql(mockVisitor.Object, builder.Object); mockVisitor.Verify(g => g.Generate(dropForeignKeyOperation, builder.Object), Times.Once()); }
public void Generate_when_drop_foreign_key_operation() { var operation = new DropForeignKeyOperation("dbo.MyTable", "MyFK"); Assert.Equal( @"DropForeignKey(""dbo.MyTable"", ""MyFK"")", CSharpMigrationCodeGenerator.Generate(operation)); GenerateAndValidateCode(operation); }
public virtual void Generate([NotNull] DropForeignKeyOperation dropForeignKeyOperation, [NotNull] IndentedStringBuilder stringBuilder, bool generateIdempotentSql) { Check.NotNull(dropForeignKeyOperation, "dropForeignKeyOperation"); stringBuilder .Append("ALTER TABLE ") .Append(DelimitIdentifier(dropForeignKeyOperation.TableName)) .Append(" DROP CONSTRAINT ") .Append(DelimitIdentifier(dropForeignKeyOperation.ForeignKeyName)); }
private string GenerateSqlStatementConcrete(DropForeignKeyOperation migrationOperation) { var ddlBuilder = new SQLiteDdlBuilder(); ddlBuilder.AppendSql("ALTER TABLE "); ddlBuilder.AppendIdentifier(migrationOperation.PrincipalTable); ddlBuilder.AppendSql(" DROP CONSTRAINT "); ddlBuilder.AppendIdentifier(migrationOperation.Name); return(ddlBuilder.GetCommandText()); }
protected virtual IEnumerable <MigrationStatement> Generate(DropForeignKeyOperation operation) { using (var writer = SqlWriter()) { writer.Write("ALTER TABLE "); writer.Write(Quote(CheckName(ExtractName(operation.DependentTable)))); writer.Write(" DROP CONSTRAINT "); writer.Write(Quote(CheckName(CreateItemName(operation.Name)))); yield return(Statement(writer)); } }
public virtual void Generate([NotNull] DropForeignKeyOperation dropForeignKeyOperation, [NotNull] SqlBatchBuilder batchBuilder) { Check.NotNull(dropForeignKeyOperation, "dropForeignKeyOperation"); Check.NotNull(batchBuilder, "batchBuilder"); batchBuilder .Append("ALTER TABLE ") .Append(DelimitIdentifier(dropForeignKeyOperation.TableName)) .Append(" DROP CONSTRAINT ") .Append(DelimitIdentifier(dropForeignKeyOperation.ForeignKeyName)); }
private DropForeignKeyOperation BuildDropForeignKeyOperation(XDocument edmx, XElement association) { DebugCheck.NotNull(edmx); DebugCheck.NotNull(association); var dropForeignKeyOperation = new DropForeignKeyOperation(BuildAddForeignKeyOperation(edmx, association)); BuildForeignKeyOperation(edmx, association, dropForeignKeyOperation); return(dropForeignKeyOperation); }
public override void Generate([NotNull] DropForeignKeyOperation dropForeignKeyOperation, [NotNull] IndentedStringBuilder stringBuilder) { Check.NotNull(dropForeignKeyOperation, "dropForeignKeyOperation"); Check.NotNull(stringBuilder, "stringBuilder"); stringBuilder .Append("DropForeignKey(") .Append(GenerateLiteral(dropForeignKeyOperation.TableName)) .Append(", ") .Append(GenerateLiteral(dropForeignKeyOperation.ForeignKeyName)) .Append(")"); }
public async Task DropForeignKey() { var operation = new DropForeignKeyOperation() { Table = "People", Name = "FK_People_Principal", }; var batch = await Generate(new[] { operation }); Assert.AreEqual(1, batch.Count()); Assert.AreEqual(NewLineEnd(@"ALTER TABLE ""People"" DROP CONSTRAINT ""FK_People_Principal"";"), batch[0].CommandText); }
protected virtual IEnumerable <MigrationStatement> Generate(DropForeignKeyOperation operation) { using (var writer = SqlWriter()) { writer.Write("ALTER TABLE "); writer.Write(Quote(operation.DependentTable)); writer.Write(" DROP FOREIGN KEY ("); WriteColumns(writer, operation.DependentColumns.Select(Quote)); writer.Write(") REFERENCES "); writer.Write(Quote(operation.PrincipalTable)); yield return(Statement(writer)); } }
protected override void Generate([NotNull] DropForeignKeyOperation operation, [CanBeNull] IModel model, [NotNull] MigrationCommandListBuilder builder) { Check.NotNull(operation, nameof(operation)); Check.NotNull(builder, nameof(builder)); builder .Append("ALTER TABLE ") .Append(SqlGenerationHelper.DelimitIdentifier(operation.Table, operation.Schema)) .Append(" DROP FOREIGN KEY ") .Append(SqlGenerationHelper.DelimitIdentifier(operation.Name)) .AppendLine(SqlGenerationHelper.StatementTerminator); EndStatement(builder); }
public virtual void Generate( [NotNull] DropForeignKeyOperation operation, [CanBeNull] IModel model, [NotNull] SqlBatchBuilder builder) { Check.NotNull(operation, nameof(operation)); Check.NotNull(builder, nameof(builder)); builder .Append("ALTER TABLE ") .Append(_sql.DelimitIdentifier(operation.Table, operation.Schema)) .Append(" DROP CONSTRAINT ") .Append(_sql.DelimitIdentifier(operation.Name)); }
/// <summary> /// Generates SQL for a <see cref="DropForeignKeyOperation" />. /// Generated SQL should be added using the Statement method. /// </summary> /// <param name="dropForeignKeyOperation"> The operation to produce SQL for. </param> protected virtual void Generate(DropForeignKeyOperation dropForeignKeyOperation) { Check.NotNull(dropForeignKeyOperation, "dropForeignKeyOperation"); using (var writer = Writer()) { writer.Write("ALTER TABLE "); writer.Write(Name(dropForeignKeyOperation.DependentTable)); writer.Write(" DROP CONSTRAINT "); writer.Write(Quote(dropForeignKeyOperation.Name)); Statement(writer); } }