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, ForeignKeyConstraint.NoAction); string rhsFkName = TransformationProviderUtility.CreateForeignKeyName(rhsTableName, joiningTableName); database.AddForeignKey(rhsFkName, joiningTableWithSchema, joinRhsKey, rhsTableNameWithSchema, rhsKey, ForeignKeyConstraint.NoAction); return database; }
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); }
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 provider, string foreignTable, string primaryTable, ForeignKeyConstraint constraint = ForeignKeyConstraint.NoAction) { provider.AddForeignKey(foreignTable.ForeignKeyNameTo(primaryTable), foreignTable, primaryTable.ForeignId(), primaryTable, "Id", constraint); }
public static void AddConstraint(this IQuery query, ObjectName tableName, ConstraintInfo constraintInfo) { if (constraintInfo.ConstraintType == ConstraintType.PrimaryKey) { var columnNames = constraintInfo.ColumnNames; if (columnNames.Length > 1) throw new ArgumentException(); query.AddPrimaryKey(tableName, columnNames[0], constraintInfo.ConstraintName); } else if (constraintInfo.ConstraintType == ConstraintType.Unique) { query.AddUniqueKey(tableName, constraintInfo.ColumnNames, constraintInfo.ConstraintName); } else if (constraintInfo.ConstraintType == ConstraintType.Check) { query.AddCheck(tableName, constraintInfo.CheckExpression, constraintInfo.ConstraintName); } else if (constraintInfo.ConstraintType == ConstraintType.ForeignKey) { query.AddForeignKey(tableName, constraintInfo.ColumnNames, constraintInfo.ForeignTable, constraintInfo.ForeignColumnNames, constraintInfo.OnDelete, constraintInfo.OnUpdate, constraintInfo.ConstraintName); } }
/// <summary> /// Adds a foreign key with a single column (without a name) /// </summary> /// <param name="databaseColumn">The database column.</param> /// <param name="foreignTableName">Name of the foreign table.</param> /// <returns></returns> public static DatabaseColumn AddForeignKey(this DatabaseColumn databaseColumn, string foreignTableName) { return databaseColumn.AddForeignKey(null, foreignTableName); }
/// <summary> /// Adds a foreign key with a single column /// </summary> /// <param name="databaseColumn">The database column.</param> /// <param name="foreignKeyName">Name of the foreign key.</param> /// <param name="foreignTable">The foreign table.</param> /// <returns></returns> public static DatabaseColumn AddForeignKey(this DatabaseColumn databaseColumn, string foreignKeyName, Func<IEnumerable<DatabaseTable>, DatabaseTable> foreignTable) { if (databaseColumn == null) throw new ArgumentNullException("databaseColumn", "databaseColumn must not be null"); if (foreignTable == null) throw new ArgumentNullException("foreignTable", "foreignTable must not be null"); var table = databaseColumn.Table; var fkTable = foreignTable(table.DatabaseSchema.Tables); return databaseColumn.AddForeignKey(foreignKeyName, fkTable.Name, fkTable.SchemaOwner); }
public static void AddForeignKey(this TransformationProvider database, string name, string sourceTable, string sourceColumn, string destTable, string destColumn) { database.AddForeignKey(name, sourceColumn, new[] { sourceColumn }, destTable, new[] { destColumn }); }