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; }
/// <summary> /// Добавление служебной таблицы HiLo /// </summary> /// <param name="database">Провайдер БД</param> public static void CreateHiLoTable(this ITransformationProvider database) { database.AddTable(HI_LO_TABLE_NAME, new Column(KEY_FIELD_NAME, DbType.AnsiString.WithSize(200), ColumnProperty.NotNull | ColumnProperty.PrimaryKey), new Column(VALUE_FIELD_NAME, DbType.Int64, ColumnProperty.NotNull, 1) ); }
public static EntityType AddTable( this EdmModel database, string name, EntityType pkSource) { var table = database.AddTable(name); // Add PK columns to the new table foreach (var property in pkSource.KeyProperties) { table.AddKeyMember(property.Clone()); } return table; }
public static DbTableMetadata AddTable( this DbDatabaseMetadata database, string name, DbTableMetadata pkSource) { var table = database.AddTable(name); // Add PK columns to the new table foreach (var col in pkSource.KeyColumns) { var pk = col.Clone(); table.Columns.Add(pk); } return table; }