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. |