public override VfpExpression Visit(VfpScanExpression expression) { WriteLine(Indentation.Inner); //this.Write(" FROM "); var definingQuery = expression.Target.TryGetValueForMetadataProperty <string>("DefiningQuery"); if (!string.IsNullOrEmpty(definingQuery)) { Write("("); Write(definingQuery); Write(")"); } else { var tableName = expression.Target.TryGetValueForMetadataProperty <string>("Table"); Write(string.IsNullOrEmpty(tableName) ? expression.Target.Name : tableName); } return(expression); }
public override VfpExpression Visit(VfpScanExpression expression) { _expressions.Add(expression); return(base.Visit(expression)); }
private VfpLimitExpression GetVfpLimitExpression(VfpLimitExpression limitExpression, VfpScanExpression scanExpression) { if (scanExpression == null) { return(null); } var keyMembers = GetKeyMembers(scanExpression.Target.ElementType.KeyMembers); if (!keyMembers.Any()) { return(null); } var variableReference = new VfpVariableReferenceExpression(scanExpression.ResultType, GetUniqueVariableName()); var expressionBinding = new VfpExpressionBinding(scanExpression, variableReference); var sortClauses = GetSortClauses(keyMembers, expressionBinding).ToList().AsReadOnly(); var sortExpression = new VfpSortExpression(scanExpression.ResultType, expressionBinding, sortClauses); return(new VfpLimitExpression(limitExpression.ResultType, sortExpression, limitExpression.Limit, limitExpression.WithTies)); }
public virtual VfpExpression Visit(VfpScanExpression expression) { return(expression); }