Share via


LiftableConstantExpression Class

Definition

A node containing an expression expressing how to obtain a constant value, which may get lifted out of an expression tree.

[System.Diagnostics.CodeAnalysis.Experimental("EF9100")]
[System.Diagnostics.DebuggerDisplay("{Microsoft.EntityFrameworkCore.Query.ExpressionPrinter.Print(this), nq}")]
public class LiftableConstantExpression : System.Linq.Expressions.Expression, Microsoft.EntityFrameworkCore.Query.IPrintableExpression
[<System.Diagnostics.CodeAnalysis.Experimental("EF9100")>]
[<System.Diagnostics.DebuggerDisplay("{Microsoft.EntityFrameworkCore.Query.ExpressionPrinter.Print(this), nq}")>]
type LiftableConstantExpression = class
    inherit Expression
    interface IPrintableExpression
Public Class LiftableConstantExpression
Inherits Expression
Implements IPrintableExpression
Inheritance
LiftableConstantExpression
Attributes
Implements

Remarks

When the expression tree is compiled, the constant value can simply be evaluated beforehand, and a ConstantExpression expression can directly reference the result.

When the expression tree is translated to source code instead (in query pre-compilation), the expression can be rendered out separately, to be assigned to a variable, and this node is replaced by a reference to that variable.

Constructors

LiftableConstantExpression(Object, LambdaExpression, String, Type)

This is an experimental API used by the Entity Framework Core feature and it is not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

Properties

NodeType

Gets the node type of this Expression.

OriginalExpression

This is an experimental API used by the Entity Framework Core feature and it is not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

ResolverExpression

This is an experimental API used by the Entity Framework Core feature and it is not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

Type

Gets the static type of the expression that this Expression represents.

VariableName

This is an experimental API used by the Entity Framework Core feature and it is not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

Methods

Print(ExpressionPrinter)

Creates a printable string representation of the given expression using ExpressionPrinter.

Update(LambdaExpression)

Creates a new expression that is like this one, but using the supplied children. If all of the children are the same, it will return this expression.

VisitChildren(ExpressionVisitor)

Reduces the node and then calls the visitor delegate on the reduced expression. The method throws an exception if the node is not reducible.

Applies to