/// <summary> /// 获取处理后的列名 /// </summary> /// <param name="column">列名</param> /// <param name="type">实体类型</param> /// <returns></returns> public string GetColumn(string column, Type type) { if (string.IsNullOrWhiteSpace(column)) { return(column); } return(new SqlItem(column, _register.GetAlias(type)).ToSql(_dialect)); }
/// <summary> /// 获取表别名 /// </summary> /// <param name="register">实体别名注册器</param> /// <returns></returns> private string GetTableAlias(IEntityAliasRegister register) { if (register.Contains(Table)) { return(register.GetAlias(Table)); } return(TableAlias); }
/// <summary> /// 获取前缀 /// </summary> private string GetPrefix(IEntityAliasRegister register) { if (string.IsNullOrWhiteSpace(Prefix) == false) { return(Prefix); } return(register.GetAlias(Type)); }
/// <summary> /// 分组 /// </summary> /// <typeparam name="TEntity">实体类型</typeparam> /// <param name="column">分组字段</param> /// <param name="having">分组条件</param> public void GroupBy <TEntity>(Expression <Func <TEntity, object> > column, string having = null) { if (column == null) { return; } _group.Add(new SqlItem(_resolver.GetColumn(column), _register.GetAlias(typeof(TEntity)))); _having = having; }
/// <summary> /// 获取Sql /// </summary> /// <param name="dialect">Sql方言</param> /// <param name="register">实体别名注册器</param> public string ToSql(IDialect dialect, IEntityAliasRegister register) { if (Raw) { return(Column); } var name = new NameItem(Column); var tableAlias = register.GetAlias(Entity); return($"{name.ToSql( dialect, tableAlias )} {( Desc ? "Desc" : null )}".TrimEnd()); }
/// <summary> /// 获取列名 /// </summary> /// <param name="column">列名</param> /// <param name="type">实体类型</param> /// <returns></returns> private string GetColumn(string column, Type type) { return(new SqlItem(column, _register.GetAlias(type)).ToSql(_dialect)); }
/// <summary> /// 获取列 /// </summary> private string GetColumn(Type entity, string column) { return($"{_register.GetAlias(entity)}.{column}"); }
/// <summary> /// 获取表别名 /// </summary> /// <param name="register">实体别名注册器</param> private string GetTableAlias(IEntityAliasRegister register) => register != null && register.Contains(TableType) ? register.GetAlias(TableType) : TableAlias;
/// <summary> /// 获取列 /// </summary> /// <param name="entity">实体类型</param> /// <param name="column">列名</param> private string GetColumn(Type entity, string column) => $"{_register.GetAlias(entity)}.{column}";