private string ParseSelectorToColumn(DbQueryColumnClause <TModel> expression) { var exp = expression.ColumExpression; // check expression type is "New Expression" or "Parameter Expression" if (exp.Body is NewExpression) { var newExpNode = new SqlDbQueryNewExpressionRenderColumnsNode(); newExpNode.ModelStrategy = _modelStrategy; return(newExpNode.Parse(_parameterDictionary, exp.Body)); } if (exp.Body is UnaryExpression) { var paramNode = SqlDbQueryExpressionFactory.GetNodeParser(exp.Body, _modelStrategy); return(paramNode.Parse(_parameterDictionary, exp.Body)); } if (exp.Body is ParameterExpression) { var paramNode = new SqlDbQueryParameterExpressionRenderColumnsNode(); paramNode.ModelStrategy = _modelStrategy; return(paramNode.Parse(_parameterDictionary, exp.Body)); } throw new NotSupportedException("Not supported expression type."); }
private string ParseSelectorToColumns <TModel>(Expression <Func <TModel, object> > selector) { // check expression type is "New Expression" or "Parameter Expression" if (selector.Body is NewExpression) { var newExpNode = new SqlDbQueryNewExpressionRenderColumnsNode(); newExpNode.ModelStrategy = _modelStrategy; return(newExpNode.Parse(_parameterDictionary, selector.Body)); } else if (selector.Body is UnaryExpression) { var paramNode = SqlDbQueryExpressionFactory.GetNodeParser(selector.Body, _modelStrategy); return(paramNode.Parse(_parameterDictionary, selector.Body)); } else if (selector.Body is ParameterExpression) { var paramNode = new SqlDbQueryParameterExpressionRenderColumnsNode(); paramNode.ModelStrategy = _modelStrategy; return(paramNode.Parse(_parameterDictionary, selector.Body)); } else { throw new DbEnvironmentException( "ERROR_EXPRESSION_NOT_SUPPORTED"); } }