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;
        }