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
See Implementation of database providers and extensions and How EF Core queries work for more information and examples.
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
stringThe 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
stringThe 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
stringThe string to append.
skipFinalNewline
boolIf 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
ExpressionTypeThe 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
ExpressionThe 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
ExpressionThe 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
ExpressionThe 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
ExpressionThe expression to print.
Returns
- string
The printable representation.
ToString()
public override string ToString()
Returns
Visit(Expression?)
public override Expression? Visit(Expression? expression)
Parameters
expression
Expression
Returns
VisitBinary(BinaryExpression)
protected override Expression VisitBinary(BinaryExpression binaryExpression)
Parameters
binaryExpression
BinaryExpression
Returns
VisitBlock(BlockExpression)
protected override Expression VisitBlock(BlockExpression blockExpression)
Parameters
blockExpression
BlockExpression
Returns
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
VisitConstant(ConstantExpression)
protected override Expression VisitConstant(ConstantExpression constantExpression)
Parameters
constantExpression
ConstantExpression
Returns
VisitDefault(DefaultExpression)
protected override Expression VisitDefault(DefaultExpression defaultExpression)
Parameters
defaultExpression
DefaultExpression
Returns
VisitExtension(Expression)
protected override Expression VisitExtension(Expression extensionExpression)
Parameters
extensionExpression
Expression
Returns
VisitGoto(GotoExpression)
protected override Expression VisitGoto(GotoExpression gotoExpression)
Parameters
gotoExpression
GotoExpression
Returns
VisitIndex(IndexExpression)
protected override Expression VisitIndex(IndexExpression indexExpression)
Parameters
indexExpression
IndexExpression
Returns
VisitInvocation(InvocationExpression)
protected override Expression VisitInvocation(InvocationExpression invocationExpression)
Parameters
invocationExpression
InvocationExpression
Returns
VisitLabel(LabelExpression)
protected override Expression VisitLabel(LabelExpression labelExpression)
Parameters
labelExpression
LabelExpression
Returns
VisitLambda<T>(Expression<T>)
protected override Expression VisitLambda<T>(Expression<T> lambdaExpression)
Parameters
lambdaExpression
Expression<T>
Returns
Type Parameters
T
VisitLoop(LoopExpression)
protected override Expression VisitLoop(LoopExpression loopExpression)
Parameters
loopExpression
LoopExpression
Returns
VisitMember(MemberExpression)
protected override Expression VisitMember(MemberExpression memberExpression)
Parameters
memberExpression
MemberExpression
Returns
VisitMemberInit(MemberInitExpression)
protected override Expression VisitMemberInit(MemberInitExpression memberInitExpression)
Parameters
memberInitExpression
MemberInitExpression
Returns
VisitMethodCall(MethodCallExpression)
protected override Expression VisitMethodCall(MethodCallExpression methodCallExpression)
Parameters
methodCallExpression
MethodCallExpression
Returns
VisitNew(NewExpression)
protected override Expression VisitNew(NewExpression newExpression)
Parameters
newExpression
NewExpression
Returns
VisitNewArray(NewArrayExpression)
protected override Expression VisitNewArray(NewArrayExpression newArrayExpression)
Parameters
newArrayExpression
NewArrayExpression
Returns
VisitParameter(ParameterExpression)
protected override Expression VisitParameter(ParameterExpression parameterExpression)
Parameters
parameterExpression
ParameterExpression
Returns
VisitSwitch(SwitchExpression)
protected override Expression VisitSwitch(SwitchExpression switchExpression)
Parameters
switchExpression
SwitchExpression
Returns
VisitTry(TryExpression)
protected override Expression VisitTry(TryExpression tryExpression)
Parameters
tryExpression
TryExpression
Returns
VisitTypeBinary(TypeBinaryExpression)
protected override Expression VisitTypeBinary(TypeBinaryExpression typeBinaryExpression)
Parameters
typeBinaryExpression
TypeBinaryExpression
Returns
VisitUnary(UnaryExpression)
protected override Expression VisitUnary(UnaryExpression unaryExpression)
Parameters
unaryExpression
UnaryExpression