public IDeleteForeignKeyFromTableSyntax ForeignKey()
        {
            var expression = new DeleteForeignKeyExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax);

            _context.Expressions.Add(expression);
            return(new DeleteForeignKeyBuilder(expression));
        }
 public override string Generate(DeleteForeignKeyExpression expression)
 {
     return(string.Format(
                "ALTER TABLE {0} DROP CONSTRAINT {1};",
                Quoter.QuoteTableName(expression.ForeignKey.ForeignTable, expression.ForeignKey.ForeignTableSchema),
                Quoter.Quote(expression.ForeignKey.Name)));
 }
        public IDeleteForeignKeyFromTableSyntax ForeignKey()
        {
            var expression = new DeleteForeignKeyExpression();

            _context.Expressions.Add(expression);
            return(new DeleteForeignKeyExpressionBuilder(expression));
        }
Beispiel #4
0
        public static DeleteForeignKeyExpression GetDeleteForeignKeyExpression()
        {
            var expression = new DeleteForeignKeyExpression();

            expression.ForeignKey.Name         = "FK_Test";
            expression.ForeignKey.ForeignTable = TestTableName1;
            return(expression);
        }
        public IDeleteForeignKeyOnTableSyntax ForeignKey(string foreignKeyName)
        {
            var expression = new DeleteForeignKeyExpression {
                ForeignKey = { Name = foreignKeyName }
            };

            _context.Expressions.Add(expression);
            return(new DeleteForeignKeyExpressionBuilder(expression));
        }
Beispiel #6
0
        /// <inheritdoc />
        public IDeleteForeignKeyOnTableBuilder ForeignKey(string foreignKeyName)
        {
            var expression = new DeleteForeignKeyExpression(_context)
            {
                ForeignKey = { Name = foreignKeyName }
            };

            return(new DeleteForeignKeyBuilder(expression));
        }
Beispiel #7
0
        public void WhenDefaultSchemaConventionIsChangedAndSchemaIsNotSetThenSetSchema()
        {
            var expression = new DeleteForeignKeyExpression();

            var processed = expression.Apply(ConventionSets.WithSchemaName);

            Assert.That(processed.ForeignKey.ForeignTableSchema, Is.EqualTo("testdefault"));
            Assert.That(processed.ForeignKey.PrimaryTableSchema, Is.EqualTo("testdefault"));
        }
        public override string Generate(DeleteForeignKeyExpression expression)
        {
            if (expression.ForeignKey.ForeignTable == null)
            {
                throw new ArgumentNullException("Table name not specified, ensure you have appended the OnTable extension. Format should be Delete.ForeignKey(KeyName).OnTable(TableName)");
            }

            return(string.Format(DeleteConstraint, Quoter.QuoteTableName(expression.ForeignKey.ForeignTable), Quoter.QuoteColumnName(expression.ForeignKey.Name), CommandDelimiter));
        }
Beispiel #9
0
        public void WhenDefaultSchemaConventionIsAppliedAndSchemaIsNotSetThenSchemaShouldBeNull()
        {
            var expression = new DeleteForeignKeyExpression();

            var processed = expression.Apply(ConventionSets.NoSchemaName);

            Assert.That(processed.ForeignKey.ForeignTableSchema, Is.Null);
            Assert.That(processed.ForeignKey.PrimaryTableSchema, Is.Null);
        }
        public IDeleteForeignKeyOnTableSyntax ForeignKey(string foreignKeyName)
        {
            var expression = new DeleteForeignKeyExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax)
            {
                ForeignKey = { Name = foreignKeyName }
            };

            _context.Expressions.Add(expression);
            return(new DeleteForeignKeyBuilder(expression));
        }
Beispiel #11
0
 public override string Generate(DeleteForeignKeyExpression expression)
 {
     if (expression.ForeignKey.ForeignTable == null)
     {
         throw new ArgumentNullException(nameof(expression), Dmt.ExpressionTableNameMissingWithHints);
     }
     return(string.Format(DeleteConstraint,
                          Quoter.QuoteTableName(expression.ForeignKey.ForeignTable, expression.ForeignKey.ForeignTableSchema),
                          Quoter.QuoteColumnName(expression.ForeignKey.Name)));
 }
        public void CanDropForeignKey()
        {
            var expression = new DeleteForeignKeyExpression();

            expression.ForeignKey.Name         = "FK_Test";
            expression.ForeignKey.ForeignTable = "TestPrimaryTable";

            string sql = generator.Generate(expression);

            sql.ShouldBe("ALTER TABLE \"public\".\"TestPrimaryTable\" DROP CONSTRAINT \"FK_Test\"");
        }
        public void CollectValidationErrorsShouldReturnErrorIfForeignTableNameIsNull()
        {
            var expression = new DeleteForeignKeyExpression {
                ForeignKey = new ForeignKeyDefinition {
                    ForeignTable = null
                }
            };
            var errors = ValidationHelper.CollectErrors(expression);

            errors.ShouldContain(ErrorMessages.ForeignTableNameCannotBeNullOrEmpty);
        }
        public void CollectValidationErrorsShouldReturnNoErrorsIfForeignTableNameAndForeignKeyNameAreSet()
        {
            var expression = new DeleteForeignKeyExpression {
                ForeignKey = new ForeignKeyDefinition {
                    ForeignTable = "ForeignTable", Name = "FK"
                }
            };
            var errors = ValidationHelper.CollectErrors(expression);

            Assert.That(errors.Count, Is.EqualTo(0));
        }
Beispiel #15
0
        public void Delete_Foreign_Key_Should_Throw_Exception_If_Table_Name_Is_Null()
        {
            // Setup empty FK
            var deleteFKExpression = new DeleteForeignKeyExpression();
            var fkDef = new ForeignKeyDefinition();

            deleteFKExpression.ForeignKey = fkDef;

            // Setup empty mock object
            var mockGenerator = new MockGenerator(null, null);

            Assert.Throws <ArgumentNullException>(() => mockGenerator.Generate(deleteFKExpression));
        }
Beispiel #16
0
        public void WhenDefaultSchemaConventionIsAppliedAndSchemaIsSetThenSchemaShouldNotBeChanged()
        {
            var expression = new DeleteForeignKeyExpression()
            {
                ForeignKey =
                {
                    ForeignTableSchema = "testschema",
                    PrimaryTableSchema = "testschema",
                },
            };

            var processed = expression.Apply(ConventionSets.WithSchemaName);

            Assert.That(processed.ForeignKey.ForeignTableSchema, Is.EqualTo("testschema"));
            Assert.That(processed.ForeignKey.PrimaryTableSchema, Is.EqualTo("testschema"));
        }
        public void CollectValidationErrorsShouldReturnErrorsIfForeignColumnsAreSetButNotPrimaryTable()
        {
            var expression = new DeleteForeignKeyExpression
            {
                ForeignKey = new ForeignKeyDefinition
                {
                    ForeignColumns = new Collection <string> {
                        "User_id"
                    },
                    ForeignTable = "UserRoles",
                    Name         = "FK"
                }
            };
            var errors = ValidationHelper.CollectErrors(expression);

            errors.ShouldContain(ErrorMessages.PrimaryTableNameCannotBeNullOrEmpty);
        }
        public void CollectValidationErrorsShouldReturnErrorsIfForeignColumnsAreSetButNotPrimaryColumns()
        {
            var expression = new DeleteForeignKeyExpression
            {
                ForeignKey = new ForeignKeyDefinition
                {
                    ForeignColumns = new Collection <string> {
                        "User_id"
                    },
                    ForeignTable = "UserRoles",
                    PrimaryTable = "User",
                    Name         = "FK"
                }
            };
            var errors = ValidationHelper.CollectErrors(expression);

            errors.ShouldContain(ErrorMessages.ForeignKeyMustHaveOneOrMorePrimaryColumns);
        }
        public void CollectValidationErrorsShouldReturnNoErrorsIfAllPropertiesAreSet()
        {
            var expression = new DeleteForeignKeyExpression
            {
                ForeignKey = new ForeignKeyDefinition
                {
                    ForeignColumns = new Collection <string> {
                        "User_id"
                    },
                    ForeignTable   = "UserRoles",
                    PrimaryColumns = new Collection <string> {
                        "Id"
                    },
                    PrimaryTable = "User",
                    Name         = "FK"
                }
            };
            var errors = ValidationHelper.CollectErrors(expression);

            Assert.That(errors.Count, Is.EqualTo(0));
        }
        public void ReverseReturnsDeleteForeignKeyExpression()
        {
            var expression = new DeleteForeignKeyExpression
            {
                ForeignKey = new ForeignKeyDefinition
                {
                    ForeignColumns = new Collection <string> {
                        "User_id"
                    },
                    ForeignTable   = "UserRoles",
                    PrimaryColumns = new Collection <string> {
                        "Id"
                    },
                    PrimaryTable = "User",
                    Name         = "FK"
                }
            };
            var reverse = expression.Reverse();

            reverse.ShouldBeOfType <CreateForeignKeyExpression>();
        }
        public void ReverseReturnsDeleteForeignKeyExpressionAfterApplyingConventions()
        {
            var expression = new DeleteForeignKeyExpression
            {
                ForeignKey = new ForeignKeyDefinition
                {
                    ForeignColumns = new Collection <string> {
                        "User_id"
                    },
                    ForeignTable   = "UserRoles",
                    PrimaryColumns = new Collection <string> {
                        "Id"
                    },
                    PrimaryTable = "User",
                }
            };

            expression.ApplyConventions(new MigrationConventions());
            var reverse = expression.Reverse();

            reverse.ShouldBeOfType <CreateForeignKeyExpression>();
        }
Beispiel #22
0
        public void ReverseReturnsDeleteForeignKeyExpressionAfterApplyingConventions()
        {
            var expression = new DeleteForeignKeyExpression
            {
                ForeignKey = new ForeignKeyDefinition
                {
                    ForeignColumns = new Collection <string> {
                        "User_id"
                    },
                    ForeignTable   = "UserRoles",
                    PrimaryColumns = new Collection <string> {
                        "Id"
                    },
                    PrimaryTable = "User",
                }
            };

            var processed = expression.Apply(ConventionSets.WithSchemaName);

            var reverse = processed.Reverse();

            reverse.ShouldBeOfType <CreateForeignKeyExpression>();
        }
        public void ReverseSetsForeignTableAndForeignColumnsAndPrimaryTableAndPrimaryColumnsAOnGeneratedExpression()
        {
            var expression = new DeleteForeignKeyExpression
            {
                ForeignKey = new ForeignKeyDefinition
                {
                    ForeignColumns = new Collection <string> {
                        "ForeignId"
                    },
                    ForeignTable   = "UserRoles",
                    PrimaryColumns = new Collection <string> {
                        "PrimaryId"
                    },
                    PrimaryTable = "User",
                }
            };
            var reverse = expression.Reverse() as CreateForeignKeyExpression;

            reverse.ForeignKey.ForeignTable.ShouldBe("User");
            reverse.ForeignKey.PrimaryTable.ShouldBe("UserRoles");
            reverse.ForeignKey.ForeignColumns.First().ShouldBe("PrimaryId");
            reverse.ForeignKey.PrimaryColumns.First().ShouldBe("ForeignId");
        }
Beispiel #24
0
 public override string Generate(DeleteForeignKeyExpression expression)
 {
     return(string.Format("ALTER TABLE {0}.{1}", Quoter.QuoteSchemaName(expression.ForeignKey.ForeignTableSchema), base.Generate(expression)));
 }
Beispiel #25
0
 public override string Generate(DeleteForeignKeyExpression expression)
 {
     return(CompatibilityMode.HandleCompatibilty("Foreign keys are not supported in SQLite"));
 }
Beispiel #26
0
 public override void Process(DeleteForeignKeyExpression expression)
 {
     truncator.Truncate(expression);
     RegisterExpression <DeleteForeignKeyExpression>(expression);
     InternalProcess(Generator.Generate(expression));
 }
Beispiel #27
0
 public abstract string Generate(DeleteForeignKeyExpression expression);
Beispiel #28
0
 public virtual void Process(DeleteForeignKeyExpression expression)
 {
     Process(Generator.Generate(expression));
 }
 public override string Generate(DeleteForeignKeyExpression expression)
 {
     return(string.Format(DeleteConstraint, Quoter.QuoteTableName(expression.ForeignKey.ForeignTable), "FOREIGN KEY ", Quoter.QuoteColumnName(expression.ForeignKey.Name)));
 }
Beispiel #30
0
 public override string Generate(DeleteForeignKeyExpression expression)
 {
     Truncator.Truncate(expression);
     return(base.Generate(expression));
 }
 public override string Generate(DeleteForeignKeyExpression expression)
 {
     return string.Format(DeleteConstraint, Quoter.QuoteTableName(expression.ForeignKey.ForeignTable), "FOREIGN KEY ", Quoter.QuoteColumnName(expression.ForeignKey.Name));
 }