Beispiel #1
0
        private string CreateInDatabase(CompareResultModel model)
        {
            switch (model.ObjectType)
            {
            case ObjectTypeEnum.Column:

                return(Scripting.BuildeColumnCreate(Integrity.GetTableSchema(model.TableName), model.TableName, model.TableObject.Columns.First(col => col.ColumnName == model.ObjectName)));

            case ObjectTypeEnum.ForeignKeyConstraint:

                return(Scripting.BuildForeignKey(model.TableObject));

            case ObjectTypeEnum.Table:

                return(Scripting.ScriptTableCreate(model.TableObject));
            }

            return(string.Empty);
        }
Beispiel #2
0
        private string AlterDatabase(CompareResultModel model)
        {
            switch (model.ObjectType)
            {
            case ObjectTypeEnum.Column:

                return(Scripting.BuildColumnAlter(model.TableName, model.TableObject.Columns.First(col => col.ColumnName == model.ObjectName)));

            case ObjectTypeEnum.ForeignKeyConstraint:

                StringBuilder foreingResult = new StringBuilder();

                string constraintKey = $"{model.TableName}||{model.ObjectName}";

                foreingResult.AppendLine(Scripting.DropForeignKey(constraintKey));

                foreingResult.AppendLine(Scripting.BuildForeignKey(model.TableObject));

                return(foreingResult.ToString());

            case ObjectTypeEnum.Table:

                StringBuilder tableResult = new StringBuilder();

                tableResult.AppendLine(Scripting.ScriptTableCreate(model.TableObject));

                foreach (ColumnObjectModel column in model.TableObject.Columns)
                {
                    tableResult.AppendLine(Scripting.BuildeColumnCreate(Integrity.GetTableSchema(model.TableName), model.TableName, column));

                    tableResult.AppendLine(Scripting.BuildColumnAlter(model.TableName, column));
                }

                return(tableResult.ToString());
            }

            return(string.Empty);
        }