private StatementQueryAggregateExpression ConvertAggregateExpression(QueryTreeAggregateExpression source) { StatementQueryAggregateExpression result = new StatementQueryAggregateExpression(); foreach (var a in source.Arguments) { result.Arguments.Add(Convert(a)); } return(result); }
private QueryTreeExpression Convert(ExpressionResult source) { if (source is ConstExpressionResult) { var r = (ConstExpressionResult)source; return(new QueryTreeConstExpression() { DbType = r.DbType, TypeID = r.TypeID }); } else if (source is AttributeExpressionResult) { var r = (AttributeExpressionResult)source; return(new QueryTreeAttributeExpression() { DbType = r.DbType, TypeID = r.TypeID, AttributeNumber = r.AttributeNumber, RelationID = r.RelationID }); } else if (source is FunctionExpressionResult) { var r = (FunctionExpressionResult)source; var result = new QueryTreeFunctionExpression() { ResultDbType = r.ResultDbType, ResultTypeID = r.ResultTypeID }; foreach (var a in r.Arguments) { result.Arguments.Add(Convert(a)); } return(result); } else if (source is OperatorExpressionResult) { var r = (OperatorExpressionResult)source; var result = new QueryTreeOperatorExpression() { OperatorID = r.OperatorID, ResultDbType = r.ResultDbType, ResultTypeID = r.ResultTypeID }; foreach (var a in r.Arguments) { result.Arguments.Add(Convert(a)); } return(result); } else if (source is AggregateExpressionResult) { var r = (AggregateExpressionResult)source; var result = new QueryTreeAggregateExpression(); foreach (var a in r.Arguments) { result.Arguments.Add(Convert(a)); } return(result); } else if (source is BooleanExpressionResult) { var r = (BooleanExpressionResult)source; var result = new QueryTreeBooleanExpression() { Operator = r.Operator }; foreach (var a in r.Arguments) { result.Arguments.Add(Convert(a)); } return(result); } else if (source is NullTestExpressionResult) { var r = (NullTestExpressionResult)source; return(new QueryTreeNullTestExpression() { Argument = Convert(r.Argument), TestType = Convert(r.TestType) }); } return(new QueryTreeUnknownExpression()); }