Class LambdaAbstraction
A representation of the unknown parts of the query expression tree.
Namespace: System.Linq.CompilerServices.Optimizers
Assembly: Nuqleon.Linq.CompilerServices.Optimizers.dll
Syntax
public sealed class LambdaAbstraction : QueryTree
Properties
Body
The unknown parts of the query expression, abstracted out as a lambda expression.
Declaration
public LambdaExpression Body { get; }
Property Value
Type | Description |
---|---|
System.Linq.Expressions.LambdaExpression |
Parameters
The known sub-parts of the query expression.
Declaration
public ReadOnlyCollection<QueryTree> Parameters { get; }
Property Value
Type | Description |
---|---|
System.Collections.ObjectModel.ReadOnlyCollection<QueryTree> |
QueryNodeType
The QueryNodeType of the QueryTree.
Declaration
public override QueryNodeType QueryNodeType { get; }
Property Value
Type | Description |
---|---|
QueryNodeType |
Overrides
Methods
Accept<TQueryTree, TMonadMember, TQueryOperator>(QueryVisitor<TQueryTree, TMonadMember, TQueryOperator>)
Accepts the query expression tree node in the specified visitor.
Declaration
protected override TQueryTree Accept<TQueryTree, TMonadMember, TQueryOperator>(QueryVisitor<TQueryTree, TMonadMember, TQueryOperator> visitor)
where TMonadMember : TQueryTree where TQueryOperator : TMonadMember
Parameters
Type | Name | Description |
---|---|---|
QueryVisitor<TQueryTree, TMonadMember, TQueryOperator> | visitor | Visitor to process the current query expression tree node. |
Returns
Type | Description |
---|---|
TQueryTree | Result of visiting the node. |
Type Parameters
Name | Description |
---|---|
TQueryTree | Target type for query expressions. |
TMonadMember | Target type for monad member query expressions. This type has to derive from TQueryTree. |
TQueryOperator | Target type for query operator query expressions. This type has to derive from TMonadMember. |
Overrides
Reduce()
Reduces the current node to an equivalent System.Linq.Expressions.Expression.
Declaration
public override Expression Reduce()
Returns
Type | Description |
---|---|
System.Linq.Expressions.Expression | This node's equivalent System.Linq.Expressions.Expression. |
Overrides
Update(LambdaExpression, IEnumerable<QueryTree>)
Creates a lambda abstraction query expression that is like this one, but using the supplied children. If all of the children are the same, it will return this expression.
Declaration
public LambdaAbstraction Update(LambdaExpression body, IEnumerable<QueryTree> parameters)
Parameters
Type | Name | Description |
---|---|---|
System.Linq.Expressions.LambdaExpression | body | The Body child node of the result. |
System.Collections.Generic.IEnumerable<QueryTree> | parameters | The Parameters child node of the result. |
Returns
Type | Description |
---|---|
LambdaAbstraction | This query expression if no children are changed or an expression with the updated children. |