private void Write(string name, DbSortClause sortClause) { Write(name, ""); _depth++; WriteLine(string.Format("Collation: {0}", "", sortClause.Collation)); WriteLine(string.Format("Ascending: {0}", "", sortClause.Ascending)); sortClause.Expression.Accept(this); _depth--; }
private LegacyCommandTrees.DbSortClause ConvertToLegacySortClause(DbSortClause sortClause) { return (sortClause.Ascending ? string.IsNullOrEmpty(sortClause.Collation) ? sortClause.Expression.Accept(this).ToSortClause() : sortClause.Expression.Accept(this).ToSortClause(sortClause.Collation) : string.IsNullOrEmpty(sortClause.Collation) ? sortClause.Expression.Accept(this).ToSortClauseDescending() : sortClause.Expression.Accept(this).ToSortClauseDescending(sortClause.Collation)); }
private Expression CreateOrderByExpression(IList <DbSortClause> sortorder, string sourceVariableName, Expression source) { Type sourceType = TypeHelper.GetElementType(source.Type); Expression result = source; LambdaExpression selector = null; for (int i = 0; i < sortorder.Count; i++) { DbSortClause sort = sortorder[i]; ParameterExpression param = Expression.Parameter(sourceType, sourceVariableName); using (this.CreateVariable(param, sourceVariableName)) { selector = Expression.Lambda(this.Visit(sort.Expression), param); } if (sort.Ascending) { if (i == 0) { result = queryMethodExpressionBuilder.OrderBy(result, selector); } else { result = queryMethodExpressionBuilder.ThenBy(result, selector); } } else { if (i == 0) { result = queryMethodExpressionBuilder.OrderByDescending(result, selector); } else { result = queryMethodExpressionBuilder.ThenByDescending(result, selector); } } } return(result); }
private bool VisitSortClause(DbSortClause sortClause) { return(VisitExpression(sortClause.Expression)); }