Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
 protected override SqlGenerate Select(UnaryExpression expression, SqlGenerate sqlGenerate)
 {
     SqlExpressionProvider.Select(expression.Operand, sqlGenerate);
     return(sqlGenerate);
 }
Exemplo n.º 3
0
 protected override SqlGenerate Select(LambdaExpression expression, SqlGenerate sqlGenerate)
 {
     SqlExpressionProvider.Select(expression.Body, sqlGenerate);
     return(sqlGenerate);
 }