protected string CreateOrderBySql(IQueryOrderBy orderBy, QueryBuildInfo buildInfo) { if (orderBy != null) { return(((IAbstractOrderBy)orderBy).CreateSql(_dbLayer, buildInfo)); } return("/*Incorrect Order by*/"); }
public ISelectionQuery OrderBy(IQueryOrderBy queryOrderBy) { Structure.OrderList.Add(queryOrderBy); return(this); }
public static IQueryable <TSource> Order <TSource>(this IQueryable <TSource> query, IQueryOrderBy queryOrderBy) { if (string.IsNullOrEmpty(queryOrderBy.OrderByField)) { return(query); } var prop = typeof(TSource).GetProperties().ToList().FirstOrDefault(a => a.Name.Equals(queryOrderBy.OrderByField, StringComparison.OrdinalIgnoreCase)); if (prop == null) { return(query); } var orderMethodName = queryOrderBy.OrderBySort == ESort.Asc ? "OrderBy" : "OrderByDescending"; var param = Expression.Parameter(typeof(TSource)); var types = new List <Type> { typeof(TSource), prop.PropertyType }; Expression expr = Expression.Call(typeof(Queryable), orderMethodName, types.ToArray(), query.Expression, Expression.Lambda(Expression.Property(param, prop.Name), param)); query = query.AsQueryable().Provider.CreateQuery <TSource>(expr); return(query); }