语言

QuerySqlGenerator 类

定义

要获取 IRelationalCommand 给定 SelectExpression的查询 SQL 生成器。

此类型通常由数据库提供程序(和其他扩展)使用。 它通常不用于应用程序代码。

[System.Runtime.CompilerServices.Nullable(0)]
public class QuerySqlGenerator : Microsoft.EntityFrameworkCore.Query.SqlExpressionVisitor
[System.Runtime.CompilerServices.Nullable(0)]
public class QuerySqlGenerator : System.Linq.Expressions.ExpressionVisitor
public class QuerySqlGenerator : Microsoft.EntityFrameworkCore.Query.SqlExpressionVisitor
[<System.Runtime.CompilerServices.Nullable(0)>]
type QuerySqlGenerator = class
    inherit SqlExpressionVisitor
[<System.Runtime.CompilerServices.Nullable(0)>]
type QuerySqlGenerator = class
    inherit ExpressionVisitor
type QuerySqlGenerator = class
    inherit SqlExpressionVisitor
Public Class QuerySqlGenerator
Inherits SqlExpressionVisitor
Public Class QuerySqlGenerator
Inherits ExpressionVisitor
继承
继承
QuerySqlGenerator
特性

构造函数

名称 说明
QuerySqlGenerator(QuerySqlGeneratorDependencies)

要获取 IRelationalCommand 给定 SelectExpression的查询 SQL 生成器。

此类型通常由数据库提供程序(和其他扩展)使用。 它通常不用于应用程序代码。

属性

名称 说明
AliasSeparator

默认别名分隔符。

Dependencies

此服务的关系提供程序特定的依赖项。

Sql

当前的 SQL 命令生成器。

方法

名称 说明
CheckComposableSql(String)

检查给定的 SQL 字符串是否可组合,即可以作为子查询嵌入到较大的 SQL 查询中。

CheckComposableSqlTrimmed(ReadOnlySpan<Char>)

检查给定的 SQL 字符串是否可组合,即可以作为子查询嵌入到较大的 SQL 查询中。 sql提供的空格和注释已剪裁。

GenerateEmptyProjection(SelectExpression)

为 SELECT 表达式的空投影生成 SQL。 这通常是单个 1 文本,但对于需要不同格式的提供程序,可以重写它。

GenerateExists(ExistsExpression, Boolean)

为 EXISTS 表达式生成 SQL。

GenerateFrom(SelectExpression)

为给定 SELECT 表达式的 FROM 子句生成 SQL。

GenerateIn(InExpression, Boolean)

为 IN 表达式生成 SQL。

GenerateLike(LikeExpression, Boolean)

为 LIKE 表达式生成 SQL。

GenerateLimitOffset(SelectExpression)

为给定 SELECT 表达式的 LIMIT/OFFSET 子句生成 SQL。

GenerateOperator(SqlBinaryExpression)
已过时.

为 SQL 二进制操作生成 SQL 运算符。

GenerateOrderings(SelectExpression)

为给定 SELECT 表达式的 ORDER BY 子句生成 SQL。

GenerateProjection(SelectExpression)

为给定 SELECT 表达式的投影子句生成 SQL。

GeneratePseudoFromClause()

为伪 FROM 子句生成 SQL。 当查询没有实际 FROM 子句时,某些提供程序需要这样做。

GenerateRootCommand(Expression)

为给定的顶级查询表达式生成命令。 这样,如果表达式在顶级时需要不同的处理,则提供程序可以截获。

GenerateSetOperation(SetOperationBase)

为集操作生成 SQL。

GenerateSetOperationOperand(SetOperationBase, SelectExpression)

为集操作中的操作数生成 SQL。

GenerateTagsHeaderComment(ISet<String>)

生成标记的头注释。

GenerateTagsHeaderComment(SelectExpression)
已过时.

生成标记的头注释。

GenerateTop(SelectExpression)

为给定 SELECT 表达式的 TOP 子句生成 SQL。

GenerateValues(ValuesExpression)

为 VALUES 表达式生成 SQL。

GetCommand(Expression)

获取查询表达式的关系命令。

GetCommand(SelectExpression)

获取一个 SelectExpression关系命令。

GetOperator(SqlBinaryExpression)

获取 SQL 二进制操作的 SQL 运算符。

RequiresParentheses(SqlExpression, SqlExpression)

返回一个布尔值,该值指示在为外部 SQL 表达式生成 SQL 时,是否需要在括号内放置内部 SQL 表达式。

TryGenerateWithoutWrappingSelect(SelectExpression)

如果可能,则生成提供的 selectExpression 表达式,而不使用包装 SELECT。 可以为设置操作和 VALUES 执行此操作,这些操作和 VALUES 可以显示为顶级语句,而无需包装在 SELECT 中。

TryGetOperatorInfo(SqlExpression, Int32, Boolean)

返回表示给定 expression优先级及其关联性的数值。 这些控件控制是否围绕表达式生成括号。

VisitAtTimeZone(AtTimeZoneExpression)

为 AT TIME ZONE 表达式生成 SQL。

VisitCase(CaseExpression)

为 CASE 子句 CASE/WHEN 构造生成 SQL。

VisitCollate(CollateExpression)

为 COLLATE 表达式生成 SQL。

VisitColumn(ColumnExpression)

为列生成 SQL。

VisitCrossApply(CrossApplyExpression)

为交叉应用生成 SQL。

VisitCrossJoin(CrossJoinExpression)

为交叉联接生成 SQL。

VisitDelete(DeleteExpression)

为 DELETE 表达式生成 SQL

VisitDistinct(DistinctExpression)

为聚合函数调用中的 DISTINCT () 子句生成 SQL。

VisitExcept(ExceptExpression)

为 EXCEPT 集操作生成 SQL。

VisitExists(ExistsExpression)

为 EXISTS 表达式生成 SQL。

VisitExtension(Expression)

要获取 IRelationalCommand 给定 SelectExpression的查询 SQL 生成器。

此类型通常由数据库提供程序(和其他扩展)使用。 它通常不用于应用程序代码。

VisitExtension(Expression)

要获取 IRelationalCommand 给定 SelectExpression的查询 SQL 生成器。

此类型通常由数据库提供程序(和其他扩展)使用。 它通常不用于应用程序代码。

(继承自 SqlExpressionVisitor)
VisitFromSql(FromSqlExpression)

为用户提供的 SQL 查询生成 SQL。

VisitFullJoin(FullJoinExpression)

生成完整联接的 SQL。

VisitIn(InExpression)

为 IN 表达式生成 SQL。

VisitInnerJoin(InnerJoinExpression)

为内部联接生成 SQL。

VisitIntersect(IntersectExpression)

为 INTERSECT 集操作生成 SQL。

VisitJsonScalar(JsonScalarExpression)

为 JSON 标量查找表达式生成 SQL。

VisitLeftJoin(LeftJoinExpression)

为左联接生成 SQL。

VisitLike(LikeExpression)

为 LIKE 表达式生成 SQL。

VisitOrdering(OrderingExpression)

为 SELECT ORDER BY 子句中的单个排序生成 SQL。

VisitOuterApply(OuterApplyExpression)

为外部应用生成 SQL。

VisitProjection(ProjectionExpression)

为 SELECT 表达式中的单个投影生成 SQL。

VisitRightJoin(RightJoinExpression)

为右联接生成 SQL。

VisitRowNumber(RowNumberExpression)

为行号表达式生成 SQL。

VisitRowValue(RowValueExpression)

为行值表达式生成 SQL。

VisitScalarSubquery(ScalarSubqueryExpression)

为标量子查询生成 SQL。

VisitSelect(SelectExpression)

为 SELECT 表达式生成 SQL。

VisitSqlBinary(SqlBinaryExpression)

为二进制表达式生成 SQL。

VisitSqlConstant(SqlConstantExpression)

为常量生成 SQL。

VisitSqlFragment(SqlFragmentExpression)

为任意片段生成 SQL。

VisitSqlFunction(SqlFunctionExpression)

为函数调用生成 SQL。

VisitSqlParameter(SqlParameterExpression)

为参数生成 SQL。

VisitSqlUnary(SqlUnaryExpression)

为一元表达式生成 SQL。

VisitSubSelect(ScalarSubqueryExpression)

要获取 IRelationalCommand 给定 SelectExpression的查询 SQL 生成器。

此类型通常由数据库提供程序(和其他扩展)使用。 它通常不用于应用程序代码。

VisitTable(TableExpression)

为列生成 SQL。

VisitTableValuedFunction(TableValuedFunctionExpression)

为表值函数调用生成 SQL。

VisitUnion(UnionExpression)

为 UNION 集操作生成 SQL。

VisitUpdate(UpdateExpression)

为 UPDATE 表达式生成 SQL。

VisitValues(ValuesExpression)

为 VALUES 表达式生成 SQL。

适用于