Example #1
0
        protected override void Convert(DropForeignKeyOperation dropForeignKeyOperation)
        {
            dropForeignKeyOperation.Name = GetFkName(dropForeignKeyOperation.PrincipalTable,
                                                     dropForeignKeyOperation.DependentTable, dropForeignKeyOperation.DependentColumns.ToArray());

            base.Convert(dropForeignKeyOperation);
        }
Example #2
0
        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();
 }
Example #4
0
 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);
        }
Example #6
0
        /// <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(")");
        }
Example #7
0
 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));
 }
Example #8
0
        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();
        }
Example #10
0
 protected override void Generate(DropForeignKeyOperation dfo)
 {
     if (dfo.HasDefaultName)
     {
         dfo.Name = GetForeignKeyName(dfo.DependentTable, dfo.PrincipalTable, dfo.DependentColumns);
     }
     base.Generate(dfo);
 }
Example #11
0
        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);
        }
Example #13
0
        /// <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());
        }
Example #16
0
        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());
        }
Example #17
0
        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);
        }
Example #18
0
        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);
        }
Example #20
0
        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));
        }
Example #21
0
        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));
        }
Example #24
0
        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);
        }
Example #29
0
        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);
            }
        }