/// <summary> /// 查询 /// </summary> /// <param name="expression"></param> /// <param name="orderBy">排序字段</param> /// <returns></returns> public SqlExpressionCore <T> Select(Expression <Func <T, object> > expression = null, string orderBy = "") { var sql = $"select {{0}}{Environment.NewLine}from {sqlGenerate.TableName}"; string fields = ""; if (expression == null) { var dbType = sqlGenerate.DatabaseType; var pis = typeof(T).GetProperties(); foreach (var pi in pis) { string fieldName = pi.GetFieldName(); if (string.IsNullOrEmpty(fieldName)) { continue; } fields += $"{fieldName.ParamSql(dbType)} as {pi.Name.ParamSql(dbType)},"; } fields = fields.TrimEnd(','); } else { SqlExpressionProvider.Select(expression, sqlGenerate); fields = sqlGenerate.SelectFieldsStr; } sqlGenerate.Sql.AppendFormat(sql, fields); return(this); }
protected override SqlGenerate Select(UnaryExpression expression, SqlGenerate sqlGenerate) { SqlExpressionProvider.Select(expression.Operand, sqlGenerate); return(sqlGenerate); }
protected override SqlGenerate Select(LambdaExpression expression, SqlGenerate sqlGenerate) { SqlExpressionProvider.Select(expression.Body, sqlGenerate); return(sqlGenerate); }