GetExpressionRightFieldByNT() public method

获取拉姆达表达式的字段值多个T模式
public GetExpressionRightFieldByNT ( Expression exp, SqlSugarClient db ) : string
exp System.Linq.Expressions.Expression
db SqlSugarClient 数据库访问对象
return string
        /// <summary>
        /// 排序
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <typeparam name="T2"></typeparam>
        /// <param name="queryable"></param>
        /// <param name="expression">例如 (s1,s2)=>s1.id,相当于 order by s1.id</param>
        /// <param name="type"></param>
        /// <returns></returns>
        public static Queryable <T> OrderBy <T, T2>(this Queryable <T> queryable, Expression <Func <T, T2, object> > expression, OrderByType type = OrderByType.asc)
        {
            ResolveExpress re    = new ResolveExpress();
            var            field = re.GetExpressionRightFieldByNT(expression);
            var            pre   = queryable.OrderBy.IsValuable() ? "," : "";

            queryable.OrderBy += pre + field + " " + type.ToString().ToUpper();
            return(queryable);
        }
示例#2
0
        /// <summary>
        /// 排序
        /// </summary>
        /// <typeparam name="T">表实体类型</typeparam>
        /// <param name="queryable">查询对象</param>
        /// <param name="expression">排序字段 it=>it.fieldName </param>
        /// <param name="type">排序类型</param>
        /// <returns>Queryable</returns>
        public static Queryable <T> OrderBy <T>(this Queryable <T> queryable, Expression <Func <T, object> > expression, OrderByType type = OrderByType.asc)
        {
            ResolveExpress re    = new ResolveExpress();
            var            field = queryable.OrderByField = re.GetExpressionRightField(expression, queryable.DB);

            if (queryable.JoinTableValue.IsValuable())
            {
                field = re.GetExpressionRightFieldByNT(expression, queryable.DB);
            }
            var pre = queryable.OrderByValue.IsValuable() ? "," : "";

            queryable.OrderByValue += pre + field.GetTranslationSqlName() + " " + type.ToString().ToUpper();
            return(queryable);
        }