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 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 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--;
 }