Table of Contents

Class ExpressionPrinter

Namespace
Microsoft.EntityFrameworkCore.Query
Assembly
Microsoft.EntityFrameworkCore.dll

A class to create a printable string representation of expression.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

public class ExpressionPrinter : ExpressionVisitor
Inheritance
ExpressionPrinter
Inherited Members

Remarks

Constructors

ExpressionPrinter()

Creates a new instance of the ExpressionPrinter class.

public ExpressionPrinter()

Methods

Append(string)

Appends the given string to current output being built.

public virtual ExpressionPrinter Append(string value)

Parameters

value string

The string to append.

Returns

ExpressionPrinter

This printer so additional calls can be chained.

AppendLine()

Appends a new line to current output being built.

public virtual ExpressionPrinter AppendLine()

Returns

ExpressionPrinter

This printer so additional calls can be chained.

AppendLine(string)

Appends the given string and a new line to current output being built.

public virtual ExpressionVisitor AppendLine(string value)

Parameters

value string

The string to append.

Returns

ExpressionVisitor

This printer so additional calls can be chained.

AppendLines(string, bool)

Appends all the lines to current output being built.

public virtual ExpressionPrinter AppendLines(string value, bool skipFinalNewline = false)

Parameters

value string

The string to append.

skipFinalNewline bool

If true, then a terminating new line is not added.

Returns

ExpressionPrinter

This printer so additional calls can be chained.

GenerateBinaryOperator(ExpressionType)

Returns binary operator string corresponding to given ExpressionType.

public virtual string GenerateBinaryOperator(ExpressionType expressionType)

Parameters

expressionType ExpressionType

The expression type to generate binary operator for.

Returns

string

The binary operator string.

Indent()

Creates a scoped indenter that will increment the indent, then decrement it when disposed.

public virtual IDisposable Indent()

Returns

IDisposable

An indenter.

Print(Expression)

Creates a printable string representation of the given expression.

public static string Print(Expression expression)

Parameters

expression Expression

The expression to print.

Returns

string

The printable representation.

PrintDebug(Expression)

Creates a printable verbose string representation of the given expression.

public static string PrintDebug(Expression expression)

Parameters

expression Expression

The expression to print.

Returns

string

The printable representation.

PrintExpression(Expression, int?)

Creates a printable string representation of the given expression.

public virtual string PrintExpression(Expression expression, int? characterLimit = null)

Parameters

expression Expression

The expression to print.

characterLimit int?

An optional limit to the number of characters included. Additional output will be truncated.

Returns

string

The printable representation.

PrintExpressionDebug(Expression)

Creates a printable verbose string representation of the given expression.

public virtual string PrintExpressionDebug(Expression expression)

Parameters

expression Expression

The expression to print.

Returns

string

The printable representation.

ToString()

public override string ToString()

Returns

string

Visit(Expression?)

public override Expression? Visit(Expression? expression)

Parameters

expression Expression

Returns

Expression

VisitBinary(BinaryExpression)

protected override Expression VisitBinary(BinaryExpression binaryExpression)

Parameters

binaryExpression BinaryExpression

Returns

Expression

VisitBlock(BlockExpression)

protected override Expression VisitBlock(BlockExpression blockExpression)

Parameters

blockExpression BlockExpression

Returns

Expression

VisitCollection<T>(IReadOnlyCollection<T>, Action<ExpressionPrinter>?)

Visit given readonly collection of expression for printing.

public virtual void VisitCollection<T>(IReadOnlyCollection<T> items, Action<ExpressionPrinter>? joinAction = null) where T : Expression

Parameters

items IReadOnlyCollection<T>

A collection of items to print.

joinAction Action<ExpressionPrinter>

A join action to use when joining printout of individual item in the collection.

Type Parameters

T

VisitConditional(ConditionalExpression)

protected override Expression VisitConditional(ConditionalExpression conditionalExpression)

Parameters

conditionalExpression ConditionalExpression

Returns

Expression

VisitConstant(ConstantExpression)

protected override Expression VisitConstant(ConstantExpression constantExpression)

Parameters

constantExpression ConstantExpression

Returns

Expression

VisitDefault(DefaultExpression)

protected override Expression VisitDefault(DefaultExpression defaultExpression)

Parameters

defaultExpression DefaultExpression

Returns

Expression

VisitExtension(Expression)

protected override Expression VisitExtension(Expression extensionExpression)

Parameters

extensionExpression Expression

Returns

Expression

VisitGoto(GotoExpression)

protected override Expression VisitGoto(GotoExpression gotoExpression)

Parameters

gotoExpression GotoExpression

Returns

Expression

VisitIndex(IndexExpression)

protected override Expression VisitIndex(IndexExpression indexExpression)

Parameters

indexExpression IndexExpression

Returns

Expression

VisitInvocation(InvocationExpression)

protected override Expression VisitInvocation(InvocationExpression invocationExpression)

Parameters

invocationExpression InvocationExpression

Returns

Expression

VisitLabel(LabelExpression)

protected override Expression VisitLabel(LabelExpression labelExpression)

Parameters

labelExpression LabelExpression

Returns

Expression

VisitLambda<T>(Expression<T>)

protected override Expression VisitLambda<T>(Expression<T> lambdaExpression)

Parameters

lambdaExpression Expression<T>

Returns

Expression

Type Parameters

T

VisitLoop(LoopExpression)

protected override Expression VisitLoop(LoopExpression loopExpression)

Parameters

loopExpression LoopExpression

Returns

Expression

VisitMember(MemberExpression)

protected override Expression VisitMember(MemberExpression memberExpression)

Parameters

memberExpression MemberExpression

Returns

Expression

VisitMemberInit(MemberInitExpression)

protected override Expression VisitMemberInit(MemberInitExpression memberInitExpression)

Parameters

memberInitExpression MemberInitExpression

Returns

Expression

VisitMethodCall(MethodCallExpression)

protected override Expression VisitMethodCall(MethodCallExpression methodCallExpression)

Parameters

methodCallExpression MethodCallExpression

Returns

Expression

VisitNew(NewExpression)

protected override Expression VisitNew(NewExpression newExpression)

Parameters

newExpression NewExpression

Returns

Expression

VisitNewArray(NewArrayExpression)

protected override Expression VisitNewArray(NewArrayExpression newArrayExpression)

Parameters

newArrayExpression NewArrayExpression

Returns

Expression

VisitParameter(ParameterExpression)

protected override Expression VisitParameter(ParameterExpression parameterExpression)

Parameters

parameterExpression ParameterExpression

Returns

Expression

VisitSwitch(SwitchExpression)

protected override Expression VisitSwitch(SwitchExpression switchExpression)

Parameters

switchExpression SwitchExpression

Returns

Expression

VisitTry(TryExpression)

protected override Expression VisitTry(TryExpression tryExpression)

Parameters

tryExpression TryExpression

Returns

Expression

VisitTypeBinary(TypeBinaryExpression)

protected override Expression VisitTypeBinary(TypeBinaryExpression typeBinaryExpression)

Parameters

typeBinaryExpression TypeBinaryExpression

Returns

Expression

VisitUnary(UnaryExpression)

protected override Expression VisitUnary(UnaryExpression unaryExpression)

Parameters

unaryExpression UnaryExpression

Returns

Expression