public override void VisitAdditionalFromClause(Remotion.Linq.Clauses.AdditionalFromClause fromClause, QueryModel queryModel, int index) { _queryAsString.AppendFormat(" from {0} {1} in {2}", fromClause.ItemType.Name, fromClause.ItemName, ExpressionStringConverter.Format(fromClause.FromExpression)); }
public override void VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, QueryModel queryModel, int index) { bool first = true; _queryAsString.AppendFormat("{0}(", resultOperator.GetType().Name); resultOperator.TransformExpressions(e => { string comma = ", "; if (first) { comma = ""; first = false; } _queryAsString.AppendFormat("{0}{1}", comma, ExpressionStringConverter.Format(e)); return(e); }); _queryAsString.Append(")"); }
/// <summary> /// Return the key for doing sub-expression storage in a table. /// </summary> /// <param name="expr"></param> /// <returns></returns> private string GetSubExpressionKey(Expression expr) { return(ExpressionStringConverter.Format(expr, true)); }
public override void VisitWhereClause(Remotion.Linq.Clauses.WhereClause whereClause, QueryModel queryModel, int index) { _queryAsString.AppendFormat(" where {0}", ExpressionStringConverter.Format(whereClause.Predicate)); }
public override void VisitSelectClause(Remotion.Linq.Clauses.SelectClause selectClause, QueryModel queryModel) { _queryAsString.AppendFormat(" select {0}", ExpressionStringConverter.Format(selectClause.Selector)); }
/// <summary> /// Deal with an order by, on a seperate line. /// </summary> /// <param name="ordering"></param> /// <param name="queryModel"></param> /// <param name="orderByClause"></param> /// <param name="index"></param> public override void VisitOrdering(Remotion.Linq.Clauses.Ordering ordering, QueryModel queryModel, Remotion.Linq.Clauses.OrderByClause orderByClause, int index) { var d = ordering.OrderingDirection == Remotion.Linq.Clauses.OrderingDirection.Asc ? "asc" : "desc"; _queryAsString.AppendLine($"orderby {ExpressionStringConverter.Format(ordering.Expression)} {d}"); }
/// <summary> /// Do the from clause, one item to a line. /// </summary> /// <param name="fromClause"></param> /// <param name="queryModel"></param> public override void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, QueryModel queryModel) { _queryAsString.AppendLine($"from {fromClause.ItemType.Name} {fromClause.ItemName} in {ExpressionStringConverter.Format(fromClause.FromExpression)}"); }