public override void VisitOrderByClause(OrderByClause orderByClause, QueryModel queryModel, int index) { Log($"VisitOrderByClause({index}): " + orderByClause, logLevel++); _queryParts.AddOrderByPart(orderByClause.Orderings.Select(item => SqlExpressionTreeVisitor.GetSqlExpression(item.Expression))); base.VisitOrderByClause(orderByClause, queryModel, index); logLevel--; }
public override void VisitSelectClause(SelectClause selectClause, QueryModel queryModel) { Log("VisitSelectClause: " + selectClause, logLevel++); _queryParts.SelectPart = SqlExpressionTreeVisitor.GetSqlExpression(selectClause.Selector) + ".*"; base.VisitSelectClause(selectClause, queryModel); logLevel--; }
public override void VisitWhereClause(WhereClause whereClause, QueryModel queryModel, int index) { Log($"VisitWhereClause({index}): " + whereClause, logLevel++); _queryParts.AddWherePart(SqlExpressionTreeVisitor.GetSqlExpression(whereClause.Predicate)); base.VisitWhereClause(whereClause, queryModel, index); logLevel--; }
public static string GetSqlExpression(Expression exp) { var visitor = new SqlExpressionTreeVisitor(); visitor.Visit(exp); return(visitor.sql.ToString()); }
public override void VisitJoinClause(JoinClause joinClause, QueryModel queryModel, int index) { Log($"VisitJoinClause({index}): " + joinClause, logLevel++); _queryParts.AddFromPart(joinClause); _queryParts.AddWherePart($"({SqlExpressionTreeVisitor.GetSqlExpression(joinClause.OuterKeySelector)} = {SqlExpressionTreeVisitor.GetSqlExpression(joinClause.InnerKeySelector)})"); base.VisitJoinClause(joinClause, queryModel, index); logLevel--; }