Exemplo n.º 1
0
        public static Expression Build(QueryLinguist linguist, QueryPolicy policy, Expression expression, Expression provider)
        {
            ParameterExpression executor = Expression.Parameter(typeof(QueryExecutor), "executor");
            var builder = new ExecutionBuilder(linguist, policy, executor);

            builder.variables.Add(executor);
            builder.initializers.Add(Expression.Call(Expression.Convert(provider, typeof(ICreateExecutor)), "CreateExecutor", null, null));
            Expression result = builder.Build(expression);

            return(result);
        }
Exemplo n.º 2
0
 public QueryTranslator(QueryLanguage language, QueryMapping mapping, QueryPolicy policy)
 {
     linguist = language.CreateLinguist(this);
     mapper   = mapping.CreateMapper(this);
     police   = policy.CreatePolice(this);
 }
Exemplo n.º 3
0
 private RelationshipIncluder(QueryMapper mapper)
 {
     this.mapper = mapper;
     policy      = mapper.Translator.Police.Policy;
 }
Exemplo n.º 4
0
 private ExecutionBuilder(QueryLinguist linguist, QueryPolicy policy, Expression executor)
 {
     this.linguist = linguist;
     this.policy   = policy;
     this.executor = executor;
 }
Exemplo n.º 5
0
 public static Expression Rewrite(QueryPolicy policy, QueryLanguage language, Expression expression)
 {
     return(new ClientJoinedProjectionRewriter(policy, language).Visit(expression));
 }
Exemplo n.º 6
0
 private ClientJoinedProjectionRewriter(QueryPolicy policy, QueryLanguage language)
 {
     this.policy   = policy;
     this.language = language;
 }
Exemplo n.º 7
0
 public QueryPolice(QueryPolicy policy, QueryTranslator translator)
 {
     this.policy     = policy;
     this.translator = translator;
 }