public void Process(TakeResultOperator resultOperator, QueryModelVisitor queryModelVisitor, IntermediateHqlTree tree) { VisitorParameters parameters = queryModelVisitor.VisitorParameters; NamedParameter namedParameter; if (parameters.ConstantToParameterMap.TryGetValue(resultOperator.Count as ConstantExpression, out namedParameter)) { parameters.RequiredHqlParameters.Add(new NamedParameterDescriptor(namedParameter.Name, null, false)); tree.AddTakeClause(tree.TreeBuilder.Parameter(namedParameter.Name)); } else { tree.AddTakeClause(tree.TreeBuilder.Constant(resultOperator.GetConstantCount())); } }
public void Process(FirstResultOperator resultOperator, QueryModelVisitor queryModelVisitor, IntermediateHqlTree tree) { var firstMethod = resultOperator.ReturnDefaultWhenEmpty ? FirstOrDefault : First; AddClientSideEval(firstMethod, queryModelVisitor, tree); tree.AddTakeClause(tree.TreeBuilder.Constant(1)); }
public void Process(FirstResultOperator resultOperator, QueryModelVisitor queryModelVisitor, IntermediateHqlTree tree) { var firstMethod = resultOperator.ReturnDefaultWhenEmpty ? ReflectionHelper.GetMethodDefinition(() => Queryable.FirstOrDefault <object>(null)) : ReflectionHelper.GetMethodDefinition(() => Queryable.First <object>(null)); AddClientSideEval(firstMethod, queryModelVisitor, tree); tree.AddTakeClause(tree.TreeBuilder.Constant(1)); }
public void Process(AnyResultOperator anyOperator, QueryModelVisitor queryModelVisitor, IntermediateHqlTree tree) { if (tree.IsRoot) { tree.AddTakeClause(tree.TreeBuilder.Constant(1)); Expression <Func <IEnumerable <object>, bool> > x = l => l.Any(); tree.AddListTransformer(x); } else { tree.SetRoot(tree.TreeBuilder.Exists((HqlQuery)tree.Root)); } }
public void Process(AllResultOperator resultOperator, QueryModelVisitor queryModelVisitor, IntermediateHqlTree tree) { tree.AddWhereClause(tree.TreeBuilder.BooleanNot( HqlGeneratorExpressionTreeVisitor.Visit(resultOperator.Predicate, queryModelVisitor.VisitorParameters). ToBooleanExpression())); if (tree.IsRoot) { tree.AddTakeClause(tree.TreeBuilder.Constant(1)); Expression <Func <IEnumerable <object>, bool> > x = l => !l.Any(); tree.AddListTransformer(x); } else { tree.SetRoot(tree.TreeBuilder.BooleanNot(tree.TreeBuilder.Exists((HqlQuery)tree.Root))); } }
public void Process(AnyResultOperator anyOperator, QueryModelVisitor queryModelVisitor, IntermediateHqlTree tree) { if (tree.IsRoot) { tree.AddTakeClause(tree.TreeBuilder.Constant(1)); Expression <Func <IEnumerable <object>, bool> > x = l => l.Any(); tree.AddListTransformer(x); // NH-3850: Queries with polymorphism yields many results which must be combined. Expression <Func <IEnumerable <bool>, bool> > px = l => l.Any(r => r); tree.AddPostExecuteTransformer(px); } else { tree.SetRoot(tree.TreeBuilder.Exists((HqlQuery)tree.Root)); } }
public void Process(AllResultOperator resultOperator, QueryModelVisitor queryModelVisitor, IntermediateHqlTree tree) { tree.AddWhereClause(tree.TreeBuilder.BooleanNot( HqlGeneratorExpressionVisitor.Visit(resultOperator.Predicate, queryModelVisitor.VisitorParameters). ToBooleanExpression())); if (tree.IsRoot) { tree.AddTakeClause(tree.TreeBuilder.Constant(1)); Expression <Func <IEnumerable <object>, bool> > x = l => !l.Any(); tree.AddListTransformer(x); // NH-3850: Queries with polymorphism yields many results which must be combined. Expression <Func <IEnumerable <bool>, bool> > px = l => l.All(r => r); tree.AddPostExecuteTransformer(px); } else { tree.SetRoot(tree.TreeBuilder.BooleanNot(tree.TreeBuilder.Exists((HqlQuery)tree.Root))); } }