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
QuerySqlGeneratorDependenciesParameter object containing dependencies for this class.
Properties
AliasSeparator
The default alias separator.
protected virtual string AliasSeparator { get; }
Property Value
Dependencies
Parameter object containing service dependencies.
protected virtual QuerySqlGeneratorDependencies Dependencies { get; }
Property Value
Sql
The current SQL command builder.
protected virtual IRelationalCommandBuilder Sql { get; }
Property Value
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
stringAn 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
SelectExpressionA 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
SqlBinaryExpressionA 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
SelectExpressionA 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
SetOperationBaseA 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
SetOperationBaseA set operation to use.
operand
SelectExpressionA set operation operand to print.
GenerateTagsHeaderComment(SelectExpression)
Generates the head comment for tags.
protected virtual void GenerateTagsHeaderComment(SelectExpression selectExpression)
Parameters
selectExpression
SelectExpressionA select expression to generate tags for.
GenerateTop(SelectExpression)
Generates a TOP construct in the relational command
protected virtual void GenerateTop(SelectExpression selectExpression)
Parameters
selectExpression
SelectExpressionA select expression to use.
GetCommand(SelectExpression)
Gets a relational command for a SelectExpression.
public virtual IRelationalCommand GetCommand(SelectExpression selectExpression)
Parameters
selectExpression
SelectExpressionA 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
SqlBinaryExpressionA SQL binary operation.
Returns
- string
A string representation of the binary operator.
VisitCase(CaseExpression)
protected override Expression VisitCase(CaseExpression caseExpression)
Parameters
caseExpression
CaseExpression
Returns
VisitCollate(CollateExpression)
protected override Expression VisitCollate(CollateExpression collateExpresion)
Parameters
collateExpresion
CollateExpression
Returns
VisitColumn(ColumnExpression)
protected override Expression VisitColumn(ColumnExpression columnExpression)
Parameters
columnExpression
ColumnExpression
Returns
VisitCrossApply(CrossApplyExpression)
protected override Expression VisitCrossApply(CrossApplyExpression crossApplyExpression)
Parameters
crossApplyExpression
CrossApplyExpression
Returns
VisitCrossJoin(CrossJoinExpression)
protected override Expression VisitCrossJoin(CrossJoinExpression crossJoinExpression)
Parameters
crossJoinExpression
CrossJoinExpression
Returns
VisitDistinct(DistinctExpression)
protected override Expression VisitDistinct(DistinctExpression distinctExpression)
Parameters
distinctExpression
DistinctExpression
Returns
VisitExcept(ExceptExpression)
protected override Expression VisitExcept(ExceptExpression exceptExpression)
Parameters
exceptExpression
ExceptExpression
Returns
VisitExists(ExistsExpression)
protected override Expression VisitExists(ExistsExpression existsExpression)
Parameters
existsExpression
ExistsExpression
Returns
VisitFromSql(FromSqlExpression)
protected override Expression VisitFromSql(FromSqlExpression fromSqlExpression)
Parameters
fromSqlExpression
FromSqlExpression
Returns
VisitIn(InExpression)
protected override Expression VisitIn(InExpression inExpression)
Parameters
inExpression
InExpression
Returns
VisitInnerJoin(InnerJoinExpression)
protected override Expression VisitInnerJoin(InnerJoinExpression innerJoinExpression)
Parameters
innerJoinExpression
InnerJoinExpression
Returns
VisitIntersect(IntersectExpression)
protected override Expression VisitIntersect(IntersectExpression intersectExpression)
Parameters
intersectExpression
IntersectExpression
Returns
VisitLeftJoin(LeftJoinExpression)
protected override Expression VisitLeftJoin(LeftJoinExpression leftJoinExpression)
Parameters
leftJoinExpression
LeftJoinExpression
Returns
VisitLike(LikeExpression)
protected override Expression VisitLike(LikeExpression likeExpression)
Parameters
likeExpression
LikeExpression
Returns
VisitOrdering(OrderingExpression)
protected override Expression VisitOrdering(OrderingExpression orderingExpression)
Parameters
orderingExpression
OrderingExpression
Returns
VisitOuterApply(OuterApplyExpression)
protected override Expression VisitOuterApply(OuterApplyExpression outerApplyExpression)
Parameters
outerApplyExpression
OuterApplyExpression
Returns
VisitProjection(ProjectionExpression)
protected override Expression VisitProjection(ProjectionExpression projectionExpression)
Parameters
projectionExpression
ProjectionExpression
Returns
VisitRowNumber(RowNumberExpression)
protected override Expression VisitRowNumber(RowNumberExpression rowNumberExpression)
Parameters
rowNumberExpression
RowNumberExpression
Returns
VisitScalarSubquery(ScalarSubqueryExpression)
protected override Expression VisitScalarSubquery(ScalarSubqueryExpression scalarSubqueryExpression)
Parameters
scalarSubqueryExpression
ScalarSubqueryExpression
Returns
VisitSelect(SelectExpression)
protected override Expression VisitSelect(SelectExpression selectExpression)
Parameters
selectExpression
SelectExpression
Returns
VisitSqlBinary(SqlBinaryExpression)
protected override Expression VisitSqlBinary(SqlBinaryExpression sqlBinaryExpression)
Parameters
sqlBinaryExpression
SqlBinaryExpression
Returns
VisitSqlConstant(SqlConstantExpression)
protected override Expression VisitSqlConstant(SqlConstantExpression sqlConstantExpression)
Parameters
sqlConstantExpression
SqlConstantExpression
Returns
VisitSqlFragment(SqlFragmentExpression)
protected override Expression VisitSqlFragment(SqlFragmentExpression sqlFragmentExpression)
Parameters
sqlFragmentExpression
SqlFragmentExpression
Returns
VisitSqlFunction(SqlFunctionExpression)
protected override Expression VisitSqlFunction(SqlFunctionExpression sqlFunctionExpression)
Parameters
sqlFunctionExpression
SqlFunctionExpression
Returns
VisitSqlParameter(SqlParameterExpression)
protected override Expression VisitSqlParameter(SqlParameterExpression sqlParameterExpression)
Parameters
sqlParameterExpression
SqlParameterExpression
Returns
VisitSqlUnary(SqlUnaryExpression)
protected override Expression VisitSqlUnary(SqlUnaryExpression sqlUnaryExpression)
Parameters
sqlUnaryExpression
SqlUnaryExpression
Returns
VisitTable(TableExpression)
protected override Expression VisitTable(TableExpression tableExpression)
Parameters
tableExpression
TableExpression
Returns
VisitTableValuedFunction(TableValuedFunctionExpression)
protected override Expression VisitTableValuedFunction(TableValuedFunctionExpression tableValuedFunctionExpression)
Parameters
tableValuedFunctionExpression
TableValuedFunctionExpression
Returns
VisitUnion(UnionExpression)
protected override Expression VisitUnion(UnionExpression unionExpression)
Parameters
unionExpression
UnionExpression