Table of Contents

Class QuerySqlGenerator

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

A query SQL generator to get IRelationalCommand for given SelectExpression.

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

public class QuerySqlGenerator : SqlExpressionVisitor
Inheritance
QuerySqlGenerator
Inherited Members

Constructors

QuerySqlGenerator(QuerySqlGeneratorDependencies)

Creates a new instance of the QuerySqlGenerator class.

public QuerySqlGenerator(QuerySqlGeneratorDependencies dependencies)

Parameters

dependencies QuerySqlGeneratorDependencies

Parameter object containing dependencies for this class.

Properties

AliasSeparator

The default alias separator.

protected virtual string AliasSeparator { get; }

Property Value

string

Dependencies

Parameter object containing service dependencies.

protected virtual QuerySqlGeneratorDependencies Dependencies { get; }

Property Value

QuerySqlGeneratorDependencies

Sql

The current SQL command builder.

protected virtual IRelationalCommandBuilder Sql { get; }

Property Value

IRelationalCommandBuilder

Methods

CheckComposableSql(string)

Checks whether a given SQL string is composable, i.e. can be embedded as a subquery within a larger SQL query.

protected virtual void CheckComposableSql(string sql)

Parameters

sql string

An SQL string to be checked for composability.

Exceptions

InvalidOperationException

The given SQL isn't composable.

GenerateLimitOffset(SelectExpression)

Generates a LIMIT...OFFSET... construct in the relational command

protected virtual void GenerateLimitOffset(SelectExpression selectExpression)

Parameters

selectExpression SelectExpression

A select expression to use.

GenerateOperator(SqlBinaryExpression)

Generates a SQL operator for a SQL binary operation.

[Obsolete("Use GetOperator instead.")]
protected virtual string GenerateOperator(SqlBinaryExpression binaryExpression)

Parameters

binaryExpression SqlBinaryExpression

A SQL binary operation.

Returns

string

A string representation of the binary operator.

GenerateOrderings(SelectExpression)

Generates an ORDER BY clause in the relational command

protected virtual void GenerateOrderings(SelectExpression selectExpression)

Parameters

selectExpression SelectExpression

A select expression to use.

GeneratePseudoFromClause()

Generates a pseudo FROM clause. Required by some providers when a query has no actual FROM clause.

protected virtual void GeneratePseudoFromClause()

GenerateSetOperation(SetOperationBase)

Generates a set operation in the relational command.

protected virtual void GenerateSetOperation(SetOperationBase setOperation)

Parameters

setOperation SetOperationBase

A set operation to print.

GenerateSetOperationOperand(SetOperationBase, SelectExpression)

Generates an operand for a given set operation in the relational command.

protected virtual void GenerateSetOperationOperand(SetOperationBase setOperation, SelectExpression operand)

Parameters

setOperation SetOperationBase

A set operation to use.

operand SelectExpression

A set operation operand to print.

GenerateTagsHeaderComment(SelectExpression)

Generates the head comment for tags.

protected virtual void GenerateTagsHeaderComment(SelectExpression selectExpression)

Parameters

selectExpression SelectExpression

A select expression to generate tags for.

GenerateTop(SelectExpression)

Generates a TOP construct in the relational command

protected virtual void GenerateTop(SelectExpression selectExpression)

Parameters

selectExpression SelectExpression

A select expression to use.

GetCommand(SelectExpression)

Gets a relational command for a SelectExpression.

public virtual IRelationalCommand GetCommand(SelectExpression selectExpression)

Parameters

selectExpression SelectExpression

A select expression to print in command text.

Returns

IRelationalCommand

A relational command with a SQL represented by the select expression.

GetOperator(SqlBinaryExpression)

Gets a SQL operator for a SQL binary operation.

protected virtual string GetOperator(SqlBinaryExpression binaryExpression)

Parameters

binaryExpression SqlBinaryExpression

A SQL binary operation.

Returns

string

A string representation of the binary operator.

VisitCase(CaseExpression)

protected override Expression VisitCase(CaseExpression caseExpression)

Parameters

caseExpression CaseExpression

Returns

Expression

VisitCollate(CollateExpression)

protected override Expression VisitCollate(CollateExpression collateExpresion)

Parameters

collateExpresion CollateExpression

Returns

Expression

VisitColumn(ColumnExpression)

protected override Expression VisitColumn(ColumnExpression columnExpression)

Parameters

columnExpression ColumnExpression

Returns

Expression

VisitCrossApply(CrossApplyExpression)

protected override Expression VisitCrossApply(CrossApplyExpression crossApplyExpression)

Parameters

crossApplyExpression CrossApplyExpression

Returns

Expression

VisitCrossJoin(CrossJoinExpression)

protected override Expression VisitCrossJoin(CrossJoinExpression crossJoinExpression)

Parameters

crossJoinExpression CrossJoinExpression

Returns

Expression

VisitDistinct(DistinctExpression)

protected override Expression VisitDistinct(DistinctExpression distinctExpression)

Parameters

distinctExpression DistinctExpression

Returns

Expression

VisitExcept(ExceptExpression)

protected override Expression VisitExcept(ExceptExpression exceptExpression)

Parameters

exceptExpression ExceptExpression

Returns

Expression

VisitExists(ExistsExpression)

protected override Expression VisitExists(ExistsExpression existsExpression)

Parameters

existsExpression ExistsExpression

Returns

Expression

VisitFromSql(FromSqlExpression)

protected override Expression VisitFromSql(FromSqlExpression fromSqlExpression)

Parameters

fromSqlExpression FromSqlExpression

Returns

Expression

VisitIn(InExpression)

protected override Expression VisitIn(InExpression inExpression)

Parameters

inExpression InExpression

Returns

Expression

VisitInnerJoin(InnerJoinExpression)

protected override Expression VisitInnerJoin(InnerJoinExpression innerJoinExpression)

Parameters

innerJoinExpression InnerJoinExpression

Returns

Expression

VisitIntersect(IntersectExpression)

protected override Expression VisitIntersect(IntersectExpression intersectExpression)

Parameters

intersectExpression IntersectExpression

Returns

Expression

VisitLeftJoin(LeftJoinExpression)

protected override Expression VisitLeftJoin(LeftJoinExpression leftJoinExpression)

Parameters

leftJoinExpression LeftJoinExpression

Returns

Expression

VisitLike(LikeExpression)

protected override Expression VisitLike(LikeExpression likeExpression)

Parameters

likeExpression LikeExpression

Returns

Expression

VisitOrdering(OrderingExpression)

protected override Expression VisitOrdering(OrderingExpression orderingExpression)

Parameters

orderingExpression OrderingExpression

Returns

Expression

VisitOuterApply(OuterApplyExpression)

protected override Expression VisitOuterApply(OuterApplyExpression outerApplyExpression)

Parameters

outerApplyExpression OuterApplyExpression

Returns

Expression

VisitProjection(ProjectionExpression)

protected override Expression VisitProjection(ProjectionExpression projectionExpression)

Parameters

projectionExpression ProjectionExpression

Returns

Expression

VisitRowNumber(RowNumberExpression)

protected override Expression VisitRowNumber(RowNumberExpression rowNumberExpression)

Parameters

rowNumberExpression RowNumberExpression

Returns

Expression

VisitScalarSubquery(ScalarSubqueryExpression)

protected override Expression VisitScalarSubquery(ScalarSubqueryExpression scalarSubqueryExpression)

Parameters

scalarSubqueryExpression ScalarSubqueryExpression

Returns

Expression

VisitSelect(SelectExpression)

protected override Expression VisitSelect(SelectExpression selectExpression)

Parameters

selectExpression SelectExpression

Returns

Expression

VisitSqlBinary(SqlBinaryExpression)

protected override Expression VisitSqlBinary(SqlBinaryExpression sqlBinaryExpression)

Parameters

sqlBinaryExpression SqlBinaryExpression

Returns

Expression

VisitSqlConstant(SqlConstantExpression)

protected override Expression VisitSqlConstant(SqlConstantExpression sqlConstantExpression)

Parameters

sqlConstantExpression SqlConstantExpression

Returns

Expression

VisitSqlFragment(SqlFragmentExpression)

protected override Expression VisitSqlFragment(SqlFragmentExpression sqlFragmentExpression)

Parameters

sqlFragmentExpression SqlFragmentExpression

Returns

Expression

VisitSqlFunction(SqlFunctionExpression)

protected override Expression VisitSqlFunction(SqlFunctionExpression sqlFunctionExpression)

Parameters

sqlFunctionExpression SqlFunctionExpression

Returns

Expression

VisitSqlParameter(SqlParameterExpression)

protected override Expression VisitSqlParameter(SqlParameterExpression sqlParameterExpression)

Parameters

sqlParameterExpression SqlParameterExpression

Returns

Expression

VisitSqlUnary(SqlUnaryExpression)

protected override Expression VisitSqlUnary(SqlUnaryExpression sqlUnaryExpression)

Parameters

sqlUnaryExpression SqlUnaryExpression

Returns

Expression

VisitTable(TableExpression)

protected override Expression VisitTable(TableExpression tableExpression)

Parameters

tableExpression TableExpression

Returns

Expression

VisitTableValuedFunction(TableValuedFunctionExpression)

protected override Expression VisitTableValuedFunction(TableValuedFunctionExpression tableValuedFunctionExpression)

Parameters

tableValuedFunctionExpression TableValuedFunctionExpression

Returns

Expression

VisitUnion(UnionExpression)

protected override Expression VisitUnion(UnionExpression unionExpression)

Parameters

unionExpression UnionExpression

Returns

Expression