private static TResult AnalyzeSemanticsCommon <TResult>( System.Data.Entity.Core.Common.EntitySql.AST.Node astExpr, Perspective perspective, ParserOptions parserOptions, IEnumerable <DbParameterReferenceExpression> parameters, IEnumerable <DbVariableReferenceExpression> variables, Func <SemanticAnalyzer, System.Data.Entity.Core.Common.EntitySql.AST.Node, TResult> analysisFunction) where TResult : class { TResult result = default(TResult); try { SemanticAnalyzer semanticAnalyzer = new SemanticAnalyzer(SemanticResolver.Create(perspective, parserOptions, parameters, variables)); return(analysisFunction(semanticAnalyzer, astExpr)); } catch (MetadataException ex) { throw new EntitySqlException(Strings.GeneralExceptionAsQueryInnerException((object)"Metadata"), (Exception)ex); } catch (MappingException ex) { throw new EntitySqlException(Strings.GeneralExceptionAsQueryInnerException((object)"Mapping"), (Exception)ex); } }
private static ParseResult AnalyzeCommandSemantics( System.Data.Entity.Core.Common.EntitySql.AST.Node astExpr, Perspective perspective, ParserOptions parserOptions, IEnumerable <DbParameterReferenceExpression> parameters) { return(CqlQuery.AnalyzeSemanticsCommon <ParseResult>(astExpr, perspective, parserOptions, parameters, (IEnumerable <DbVariableReferenceExpression>)null, (Func <SemanticAnalyzer, System.Data.Entity.Core.Common.EntitySql.AST.Node, ParseResult>)((analyzer, astExpression) => analyzer.AnalyzeCommand(astExpression)))); }
private static DbLambda AnalyzeQueryExpressionSemantics( System.Data.Entity.Core.Common.EntitySql.AST.Node astQueryCommand, Perspective perspective, ParserOptions parserOptions, IEnumerable <DbParameterReferenceExpression> parameters, IEnumerable <DbVariableReferenceExpression> variables) { return(CqlQuery.AnalyzeSemanticsCommon <DbLambda>(astQueryCommand, perspective, parserOptions, parameters, variables, (Func <SemanticAnalyzer, System.Data.Entity.Core.Common.EntitySql.AST.Node, DbLambda>)((analyzer, astExpr) => analyzer.AnalyzeQueryCommand(astExpr)))); }