語言

QuerySqlGenerator 類別

定義

一個查詢 SQL 產生器,用來取得 IRelationalCommand 給定 SelectExpression的 。

此類型通常由資料庫提供者(及其他擴充功能)使用。 它通常不被用於應用程式程式碼中。

[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
屬性

建構函式

名稱 Description
QuerySqlGenerator(QuerySqlGeneratorDependencies)

一個查詢 SQL 產生器,用來取得 IRelationalCommand 給定 SelectExpression的 。

此類型通常由資料庫提供者(及其他擴充功能)使用。 它通常不被用於應用程式程式碼中。

屬性

名稱 Description
AliasSeparator

預設的別名分隔符。

Dependencies

此服務的關聯提供者專屬相依關係。

Sql

目前的 SQL 指令建構器。

方法

名稱 Description
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 表達式是否需要用括號內。

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)

一個查詢 SQL 產生器,用來取得 IRelationalCommand 給定 SelectExpression的 。

此類型通常由資料庫提供者(及其他擴充功能)使用。 它通常不被用於應用程式程式碼中。

VisitExtension(Expression)

一個查詢 SQL 產生器,用來取得 IRelationalCommand 給定 SelectExpression的 。

此類型通常由資料庫提供者(及其他擴充功能)使用。 它通常不被用於應用程式程式碼中。

(繼承來源 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)

一個查詢 SQL 產生器,用來取得 IRelationalCommand 給定 SelectExpression的 。

此類型通常由資料庫提供者(及其他擴充功能)使用。 它通常不被用於應用程式程式碼中。

VisitTable(TableExpression)

為欄位產生 SQL。

VisitTableValuedFunction(TableValuedFunctionExpression)

為資料表值函式調用產生 SQL。

VisitUnion(UnionExpression)

為 UNION 集合操作產生 SQL。

VisitUpdate(UpdateExpression)

產生 UPDATE 表達式的 SQL。

VisitValues(ValuesExpression)

產生 VALUES 運算式的 SQL。

適用於