/// <summary> /// Generates CodeDom expression from a QueryExpression /// </summary> /// <param name="query">the QueryExpression</param> /// <param name="context">the context in which the query occurs</param> /// <returns>the CodeDom expression</returns> protected CodeExpressionWithFreeVariables GenerateCodeExpressionFromQuery(QueryExpression query, CodeExpression context) { ExceptionUtilities.CheckArgumentNotNull(this.Language, "language"); ExceptionUtilities.CheckObjectNotNull(query, "Function Body has not been specified"); var methodSyntaxGenerator = new ClientQueryMethodSyntaxCodeGenerator(); var parameterResolver = new LinqToAstoriaParameterNameResolutionVisitor(this.IdentifierGenerator); return methodSyntaxGenerator.Generate(parameterResolver.ResolveParameterNames(query), context); }
/// <summary> /// Initializes a new instance of the LinqToAstoriaQueryResolver class. /// </summary> /// <param name="identifierGenerator">Identifier generator.</param> /// <param name="typeLibrary">The query type library.</param> public LinqToAstoriaQueryResolver(IIdentifierGenerator identifierGenerator, QueryTypeLibrary typeLibrary) { this.parameterNameResolutionVisitor = new LinqToAstoriaParameterNameResolutionVisitor(identifierGenerator); this.typeResolver = new LinqToAstoriaTypeResolutionVisitor(typeLibrary); this.customFunctionResolutionVisitor = new LinqToAstoriaCustomFunctionResolutionVisitor(this.typeResolver); }