예제 #1
0
        public static ICreateIndexOnColumnOrInSchemaSyntax OnTableForEntity <TEntity>(this ICreateIndexForTableSyntax root)
            where TEntity : class, IEntity
        {
            var tableName = TableName.ForEntity <TEntity>();

            return(root.OnTable(tableName));
        }
예제 #2
0
        public static IInsertDataSyntax IntoEntityTable <TEntity>(this IInsertExpressionRoot root, object entity)
            where TEntity : class, IEntity
        {
            var tableName = TableName.ForEntity <TEntity>();

            return(root.IntoTable(tableName).Row(entity));
        }
예제 #3
0
        public static ICreateTableWithColumnSyntax TableForEntity <TEntity>(this ICreateExpressionRoot root)
            where TEntity : class, IEntity
        {
            var tableName = TableName.ForEntity <TEntity>();

            return(root.Table(tableName));
        }
예제 #4
0
        public static IAlterTableAddColumnOrAlterColumnOrSchemaOrDescriptionSyntax TableForEntity <TEntity>(this IAlterExpressionRoot root)
            where TEntity : class, IEntity
        {
            var tableName = TableName.ForEntity <TEntity>();

            return(root.Table(tableName));
        }
예제 #5
0
        public static ICreateForeignKeyCascadeSyntax BetweenEntities <TForeignEntity, TPrimaryEntity>(this ICreateForeignKeyFromTableSyntax root, string foreignColumnName = null)
            where TForeignEntity : class, IEntity
            where TPrimaryEntity : class, IEntity
        {
            var foreignTableName = TableName.ForEntity <TForeignEntity>();

            foreignColumnName = foreignColumnName ?? ColumnName.ForeignKeyTo <TPrimaryEntity>();

            var primaryTableName  = TableName.ForEntity <TPrimaryEntity>();
            var primaryColumnName = ColumnName.PrimaryKey;

            return(root
                   .FromTable(foreignTableName).ForeignColumn(foreignColumnName)
                   .ToTable(primaryTableName).PrimaryColumn(primaryColumnName));
        }
        public static ICreateForeignKeyCascadeSyntax ForeignKey <TFromEntity, TToEntity>(this ICreateExpressionRoot root,
                                                                                         string fromColumnName = null, string toColumnName = "Id")
            where TFromEntity : class, IEntity
            where TToEntity : class, IEntity
        {
            var tableFrom = TableName.ForEntity <TFromEntity>();
            var tableTo   = TableName.ForEntity <TToEntity>();

            fromColumnName = fromColumnName ?? $"{tableTo}{ColumnName.PrimaryKey}";
            toColumnName   = toColumnName ?? ColumnName.PrimaryKey;

            return(root
                   .ForeignKey($"FK_{tableFrom}_{fromColumnName}_{tableTo}_{toColumnName}")
                   .FromTable(tableFrom)
                   .ForeignColumn(fromColumnName)
                   .ToTable(tableTo)
                   .PrimaryColumn(toColumnName));
        }
예제 #7
0
        public static void TableForEntity <TEntity>(this IDeleteExpressionRoot root) where TEntity : class, IEntity
        {
            var tableName = TableName.ForEntity <TEntity>();

            root.Table(tableName);
        }
예제 #8
0
        public static string ForeignKeyTo <TEntity>() where TEntity : class, IEntity
        {
            var tableName = TableName.ForEntity <TEntity>();

            return($"{tableName}Id");
        }
예제 #9
0
 public static string UniqueOnEnity <TEntity>(params string[] colums)
     where TEntity : class, IEntity
 {
     return($"UX_{TableName.ForEntity<TEntity>()}_{string.Join("_", colums)}");
 }