語言

SqlNullabilityProcessor 類別

定義

一個類別,根據節點的可空性處理 SQL 樹,套用空語意,並根據參數值進行優化。

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

[System.Runtime.CompilerServices.Nullable(0)]
public class SqlNullabilityProcessor : System.Linq.Expressions.ExpressionVisitor
public class SqlNullabilityProcessor
[System.Runtime.CompilerServices.Nullable(0)]
public class SqlNullabilityProcessor
[<System.Runtime.CompilerServices.Nullable(0)>]
type SqlNullabilityProcessor = class
    inherit ExpressionVisitor
type SqlNullabilityProcessor = class
[<System.Runtime.CompilerServices.Nullable(0)>]
type SqlNullabilityProcessor = class
Public Class SqlNullabilityProcessor
Inherits ExpressionVisitor
Public Class SqlNullabilityProcessor
繼承
SqlNullabilityProcessor
繼承
SqlNullabilityProcessor
屬性

建構函式

名稱 Description
SqlNullabilityProcessor(RelationalParameterBasedSqlProcessorDependencies, Boolean)

建立一個新的類別實例 SqlNullabilityProcessor 。

SqlNullabilityProcessor(RelationalParameterBasedSqlProcessorDependencies, RelationalParameterBasedSqlProcessorParameters)

建立一個新的類別實例 SqlNullabilityProcessor 。

屬性

名稱 Description
CollectionParameterTranslationMode

一個表示要使用哪種翻譯模式的值。

Dependencies

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

ParametersDecorator

目前參數值使用的字典。

ParametersToConstantize

一組參數名稱的常數化。

ParameterValues

目前參數值使用的字典。

PreferExistsToInWithCoalesce

判斷 在InExpression需要複雜補償以滿足空語意時,是否會被轉換為 。ExistsExpression

UseRelationalNulls

一個布ol值,表示是否使用關聯性空語義。

方法

名稱 Description
AddNonNullableColumn(ColumnExpression)

在不可空欄列表中新增欄位,進一步優化可將該欄位取為不可空。

CalculateBucketPadding(Int32, RelationalTypeMapping)

計算需附加多少填充參數到多參數集合擴充,使參數計數與共享桶大小對齊。 此由 和 CalculatePadding(Int32, Int32)組成CalculateParameterBucketSize(Int32, RelationalTypeMapping)。

CalculatePadding(Int32, Int32)

計算需要多少填充參數,以使總計數與最接近的桶大小對齊。

CalculateParameterBucketSize(Int32, RelationalTypeMapping)

取得在產生參數化集合時,參數填充的桶大小。 這有助於減少查詢計畫的冗餘。

DoNotCache()

標記正在處理的選擇表達式為無法快取。

IsCollectionTable(TableExpressionBase, Expression)

一個用於識別TableExpressionBase代表集合的提供者鉤子,例如SQL Server上的OPENJSON。

OptimizeNonNullableNotExpression(SqlUnaryExpression)

嘗試簡化對不可空運算元的一元非運算。

OptimizeNotExpression(SqlExpression)

試圖簡化一元運算。

Process(Expression, IReadOnlyDictionary<String,Object>, Boolean)

處理查詢表達式以套用空語意並進行優化。

Process(Expression, ParametersCacheDecorator)

處理查詢表達式以套用空語意並進行優化。

Process(SelectExpression, IReadOnlyDictionary<String,Object>, Boolean)

處理 a SelectExpression 以套用空語義並優化它。

ProcessValuesOrderingColumn(ValuesExpression, IReadOnlyList<SqlExpression>, IntTypeMapping, Int32)

如果我們這裡還有_ord欄(其他優化並未移除它),我們需要為它增加價值。

TryMakeNonNullable(SelectExpression, SelectExpression, Nullable<Boolean>)

嘗試將給定 selectExpression的 ,該 具有可空投影,轉換為一個相同的表達式,且該表達式不具可空投影。 此方法用於從例如 SQL Server OPENJSON 的參數參數中提取 NULL,以便更有效率地進行轉譯。

UpdateParameterCollection(TableExpressionBase, SqlParameterExpression)

給定TableExpressionBase先前被識別為參數化集合表(例如 SQL Server 上的 OPENJSON,參見IsCollectionTable(TableExpressionBase, Expression)),將替換該資料表的參數。

Visit(SelectExpression, Boolean)

造訪一個 SelectExpression.

Visit(SelectExpression)

造訪一個 SelectExpression.

Visit(SqlExpression, Boolean, Boolean)

造訪 a SqlExpression ,並計算其空性。

Visit(SqlExpression, Boolean)

造訪 a SqlExpression ,並計算其空性。

Visit(TableExpressionBase)

造訪一個 TableExpressionBase.

VisitAtTimeZone(AtTimeZoneExpression, Boolean, Boolean)

這是一個內部 API,支援 Entity Framework Core 基礎架構,且不受公開 API 相同的相容性標準約束。 該內容可能會在任何新聞稿中未經通知而更改或移除。 你應該只在程式碼中直接使用它,並且要非常謹慎,並且要知道這樣做可能會導致更新到新的 Entity Framework Core 版本時應用程式失敗。

VisitCase(CaseExpression, Boolean, Boolean)

造訪 a CaseExpression ,並計算其空性。

VisitCollate(CollateExpression, Boolean, Boolean)

造訪 a CollateExpression ,並計算其空性。

VisitColumn(ColumnExpression, Boolean, Boolean)

造訪 a ColumnExpression ,並計算其空性。

VisitCustomSqlExpression(SqlExpression, Boolean, Boolean)

造訪由提供者新增的自訂 SqlExpression 並計算其空化性。

VisitDistinct(DistinctExpression, Boolean, Boolean)

造訪 a DistinctExpression ,並計算其空性。

VisitExists(ExistsExpression, Boolean, Boolean)

造訪 並 ExistsExpression 計算其空性。

VisitExtension(Expression)

一個類別,根據節點的可空性處理 SQL 樹,套用空語意,並根據參數值進行優化。

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

VisitIn(InExpression, Boolean, Boolean)

造訪 並 InExpression 計算其空性。

VisitJsonScalar(JsonScalarExpression, Boolean, Boolean)

造訪 a JsonScalarExpression ,並計算其空性。

VisitLike(LikeExpression, Boolean, Boolean)

造訪 a LikeExpression ,並計算其空性。

VisitRowNumber(RowNumberExpression, Boolean, Boolean)

造訪 a RowNumberExpression ,並計算其空性。

VisitRowValue(RowValueExpression, Boolean, Boolean)

造訪 a RowValueExpression ,並計算其空性。

VisitScalarSubquery(ScalarSubqueryExpression, Boolean, Boolean)

造訪 a ScalarSubqueryExpression ,並計算其空性。

VisitSqlBinary(SqlBinaryExpression, Boolean, Boolean)

造訪 a SqlBinaryExpression ,並計算其空性。

VisitSqlConstant(SqlConstantExpression, Boolean, Boolean)

造訪 a SqlConstantExpression ,並計算其空性。

VisitSqlFragment(SqlFragmentExpression, Boolean, Boolean)

造訪 a SqlFragmentExpression ,並計算其空性。

VisitSqlFunction(SqlFunctionExpression, Boolean, Boolean)

造訪 a SqlFunctionExpression ,並計算其空性。

VisitSqlParameter(SqlParameterExpression, Boolean, Boolean)

造訪 a SqlParameterExpression ,並計算其空性。

VisitSqlUnary(SqlUnaryExpression, Boolean, Boolean)

造訪 a SqlUnaryExpression ,並計算其空性。

適用於