/// <summary> /// Returns a name that can be used as an index identifier name. /// </summary> /// <param name="objectFactory">The introspection object factory</param> /// <param name="databaseServices">The database services</param> /// <param name="tableName">Name of the table for which we want to create a trigger</param> /// <param name="columns">Columns that will compose the index</param> /// <returns>A name that can be used as a sql identifier name</returns> public static string GetNewIndexName(this IPlatformDatabaseObjectFactory objectFactory, IDatabaseServices databaseServices, string tableName, IEnumerable <IPlatformTableSourceColumnInfo> columns) { string baseName = PlatformDatabaseObjectConstants.IndexPrefix + tableName + "_" + columns.Select(c => c.Name.Length + c.Name).StrCat("_"); return(objectFactory.GetNewUniqueIdentifer(databaseServices, baseName)); }
/// <summary> /// Returns a name that can be used as a primary key identifier name. /// </summary> /// <param name="objectFactory">The introspection object factory</param> /// <param name="databaseServices">The database services</param> /// <param name="tableName">Name of the table for which we want to create a primary key</param> /// <returns>A name that can be used as a sql identifier name</returns> public static string GetNewPrimaryKeyName(this IPlatformDatabaseObjectFactory objectFactory, IDatabaseServices databaseServices, string tableName) { string baseName = (IsSystemTable(tableName) ? PlatformDatabaseObjectConstants.PrimarySysConstPrefix : PlatformDatabaseObjectConstants.PrimaryConstPrefix) + tableName; return(objectFactory.GetNewUniqueIdentifer(databaseServices, baseName)); }
/// <summary> /// Returns a name that can be used as a foreign key identifier name. /// </summary> /// <param name="objectFactory">The introspection object factory</param> /// <param name="databaseServices">The database services</param> /// <param name="tableName">Name of the table for which we want to create a foreign key</param> /// <param name="referencedTableName">Name of the referenced table</param> /// <param name="columnName">Name of the column</param> /// <returns>A name that can be used as a sql identifier name</returns> public static string GetNewForeignKeyName(this IPlatformDatabaseObjectFactory objectFactory, IDatabaseServices databaseServices, string tableName, string referencedTableName, string columnName) { string baseName = PlatformDatabaseObjectConstants.ForeignConstPrefix + tableName + "_" + referencedTableName + "_" + columnName; return(objectFactory.GetNewUniqueIdentifer(databaseServices, baseName)); }
/// <summary> /// Returns a name that can be used as an event trigger identifier name. /// </summary> /// <param name="objectFactory">The introspection object factory</param> /// <param name="databaseServices">The database services</param> /// <param name="tableName">Name of the table for which we want to create a trigger</param> /// <returns>A name that can be used as a sql identifier name</returns> public static string GetNewEventTriggerName(this IPlatformDatabaseObjectFactory objectFactory, IDatabaseServices databaseServices, string tableName) { string baseName = PlatformDatabaseObjectConstants.EventTriggerPrefix + "_" + tableName; return(objectFactory.GetNewUniqueIdentifer(databaseServices, baseName)); }