public static ITransformationProvider AddManyToManyJoiningTable(this ITransformationProvider database, string schema, string lhsTableName, string lhsKey, string rhsTableName, string rhsKey, string joiningTableName)
        {
            string joiningTableWithSchema = TransformationProviderUtility.FormatTableName(schema, joiningTableName);

            string joinLhsKey = Inflector.Singularize(lhsTableName) + "Id";
            string joinRhsKey = Inflector.Singularize(rhsTableName) + "Id";

            database.AddTable(joiningTableWithSchema,
                              new Column(joinLhsKey, DbType.Guid, ColumnProperty.NotNull),
                              new Column(joinRhsKey, DbType.Guid, ColumnProperty.NotNull));

            string pkName = "PK_" + joiningTableName;

            pkName = ShortenKeyNameToBeSuitableForOracle(pkName);

            database.AddPrimaryKey(pkName, joiningTableWithSchema, joinLhsKey, joinRhsKey);

            string lhsTableNameWithSchema = TransformationProviderUtility.FormatTableName(schema, lhsTableName);
            string rhsTableNameWithSchema = TransformationProviderUtility.FormatTableName(schema, rhsTableName);

            string lhsFkName = TransformationProviderUtility.CreateForeignKeyName(lhsTableName, joiningTableName);

            database.AddForeignKey(lhsFkName, joiningTableWithSchema, joinLhsKey, lhsTableNameWithSchema, lhsKey, ForeignKeyConstraintType.NoAction);

            string rhsFkName = TransformationProviderUtility.CreateForeignKeyName(rhsTableName, joiningTableName);

            database.AddForeignKey(rhsFkName, joiningTableWithSchema, joinRhsKey, rhsTableNameWithSchema, rhsKey, ForeignKeyConstraintType.NoAction);

            return(database);
        }
 public static void AddForeignKey(this ITransformationProvider migration, string foreignTable, string primaryTable)
 {
     migration.AddForeignKey(migration.ForeignKeyName(foreignTable, primaryTable),
                             foreignTable,
                             primaryTable + "Id",
                             primaryTable,
                             "Id");
 }
 public static void AddForeignKey(this ITransformationProvider migration, string foreignTable, string foreignColumn, string primaryTable, string primaryColumn)
 {
     migration.AddForeignKey(migration.ForeignKeyName(foreignTable, foreignColumn, primaryTable, primaryColumn),
                             foreignTable,
                             foreignColumn,
                             primaryTable,
                             primaryColumn);
 }
Esempio n. 4
0
        /// <summary>
        /// Adds foreign key and foreign key column if specified.
        /// </summary>
        /// <param name="database">The database.</param>
        public override void Migrate(ITransformationProvider database)
        {
            if (GenerateColumn)
            {
                database.AddColumn(ForeignKeyTable, GetColumn());
            }

            database.AddForeignKey(Name, ForeignKeyTable,
                                   new[] { ForeignKeyColumn }, PrimaryKeyTable, new[] { PrimaryKeyColumn }, DeleteConstraint, UpdateConstraint);
        }
        /// <summary>
        /// Adds foreign key and foreign key column if specified.
        /// </summary>
        /// <param name="database">The database.</param>
        public override void Migrate(ITransformationProvider database)
        {
            if (GenerateColumn)
            {
                database.AddColumn(ForeignKeyTable, GetColumn());
            }

            database.AddForeignKey(Name, ForeignKeyTable,
                                   new[] {ForeignKeyColumn}, PrimaryKeyTable, new[] {PrimaryKeyColumn}, DeleteConstraint, UpdateConstraint);
        }
Esempio n. 6
0
 public static void AddForeignKey(this ITransformationProvider provider, string foreignTable, string primaryTable,
                                  ForeignKeyConstraint constraint = ForeignKeyConstraint.NoAction)
 {
     provider.AddForeignKey(foreignTable.ForeignKeyNameTo(primaryTable),
                            foreignTable,
                            primaryTable.ForeignId(),
                            primaryTable,
                            "Id",
                            constraint);
 }
        public void Create(ITransformationProvider provider)
        {
            provider.AddColumn(_toTable, _column.Name, _column.Type, _column.Size, _column.ColumnProperty, _column.DefaultValue);

            if (_column.ForeignKey != null)
            {
                provider.AddForeignKey(
                    "FK_" + _toTable + "_" + _column.Name + "_" + _column.ForeignKey.PrimaryTable + "_" +
                    _column.ForeignKey.PrimaryKey,
                    _toTable, _column.Name, _column.ForeignKey.PrimaryTable, _column.ForeignKey.PrimaryKey, _column.Constraint);
            }
        }
        public void Create(ITransformationProvider provider)
        {
            provider.AddColumn(_toTable, _column.Name, _column.ColumnType, _column.ColumnProperty, _column.DefaultValue);

            if (_column.ForeignKey != null)
            {
                provider.AddForeignKey(
                    "FK_" + _toTable + "_" + _column.Name + "_" + _column.ForeignKey.PrimaryTable + "_" +
                    _column.ForeignKey.PrimaryKey,
                    _toTable, _column.Name, _column.ForeignKey.PrimaryTable, _column.ForeignKey.PrimaryKey, _column.Constraint);
            }
        }
Esempio n. 9
0
 public override void Execute(ITransformationProvider provider)
 {
     provider.AddForeignKey(this.Name, Table.Name, this.FkColumns.ToArray(), this.PkTable, this.PkColumns.ToArray(),
         Constraint ?? ForeignKeyConstraint.NoAction);
 }