Jazyk

SqlNullabilityProcessor Třída

Definice

Třída, která zpracovává strom SQL na základě možnosti null uzlů, aby použila sémantiku null a optimalizovala ji na základě hodnot parametrů.

Tento typ obvykle používají poskytovatelé databáze (a další rozšíření). Obvykle se nepoužívá v kódu aplikace.

[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
Dědičnost
SqlNullabilityProcessor
Dědičnost
SqlNullabilityProcessor
Atributy

Konstruktory

Název Description
SqlNullabilityProcessor(RelationalParameterBasedSqlProcessorDependencies, Boolean)

Vytvoří novou instanci SqlNullabilityProcessor třídy.

SqlNullabilityProcessor(RelationalParameterBasedSqlProcessorDependencies, RelationalParameterBasedSqlProcessorParameters)

Vytvoří novou instanci SqlNullabilityProcessor třídy.

Vlastnosti

Název Description
CollectionParameterTranslationMode

Hodnota označující, jaký režim překladu se má použít.

Dependencies

Závislosti specifické pro relačního zprostředkovatele pro tuto službu.

ParametersDecorator

Slovník aktuálních hodnot parametrů, které se používají.

ParametersToConstantize

Kolekce názvů parametrů, které se mají konstantizovat.

ParameterValues

Slovník aktuálních hodnot parametrů, které se používají.

PreferExistsToInWithCoalesce

Určuje, zda InExpression bude transformována na hodnotu ExistsExpression , kdy by jinak vyžadovala složitou kompenzaci pro sémantiku null.

UseRelationalNulls

Logická hodnota označující, jestli se používají relační sémantika null.

Metody

Název Description
AddNonNullableColumn(ColumnExpression)

Přidá sloupec do seznamusloupcůchm souborům a přidá sloupec do seznamu sloupců s možnou hodnotou null, aby se mohl dále optimalizovat.

CalculateBucketPadding(Int32, RelationalTypeMapping)

Vypočítá počet parametrů odsazení, které se mají připojit k rozšíření kolekce s více parametry, aby počet parametrů odpovídal velikosti sdíleného kontejneru. Skládá se z CalculateParameterBucketSize(Int32, RelationalTypeMapping) a CalculatePadding(Int32, Int32).

CalculatePadding(Int32, Int32)

Vypočítá počet parametrů odsazení potřebných k zarovnání celkového počtu na nejbližší velikost kbelíku.

CalculateParameterBucketSize(Int32, RelationalTypeMapping)

Získá velikost kbelíku, do které jsou parametry padd při generování parametrizované kolekce při použití více parametrů. To pomáhá s nafouknutím plánu dotazů.

DoNotCache()

Označí výraz výběru, který se zpracovává, jako nelze uložit do mezipaměti.

IsCollectionTable(TableExpressionBase, Expression)

Hook zprostředkovatele pro identifikaci TableExpressionBase kolekce, např. OPENJSON na SQL Server.

OptimizeNonNullableNotExpression(SqlUnaryExpression)

Snaží se zjednodušit unární notovou operaci na operandu bez hodnoty null.

OptimizeNotExpression(SqlExpression)

Snaží se zjednodušit unární notovou operaci.

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

Zpracovává výraz dotazu pro použití sémantiky null a jeho optimalizaci.

Process(Expression, ParametersCacheDecorator)

Zpracovává výraz dotazu pro použití sémantiky null a jeho optimalizaci.

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

SelectExpression Zpracuje použití sémantiky null a jeho optimalizaci.

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

Pokud máme stále _ord sloupec (nebyl odebrán jinými optimalizacemi), musíme pro něj přidat hodnotu.

TryMakeNonNullable(SelectExpression, SelectExpression, Nullable<Boolean>)

Pokusí se převést danou selectExpressionhodnotu , která má projekce s možnou hodnotou null, na identický výraz, který nemá projekce s možnou hodnotou null. Používá se k extrahování hodnot NUL Z například parametru argumentu SQL Server OPENJSON, aby bylo možné efektivnější překlad.

UpdateParameterCollection(TableExpressionBase, SqlParameterExpression)

TableExpressionBase Vzhledem k tomu, která byla dříve identifikována jako parametrizovaná tabulka kolekce (např. OPENJSON na SQL Server, viz IsCollectionTable(TableExpressionBase, Expression)), nahradí parametr pro danou tabulku.

Visit(SelectExpression, Boolean)

Navštíví .SelectExpression

Visit(SelectExpression)

Navštíví .SelectExpression

Visit(SqlExpression, Boolean, Boolean)

SqlExpression Navštíví a vypočítá jeho nulovou hodnotu.

Visit(SqlExpression, Boolean)

SqlExpression Navštíví a vypočítá jeho nulovou hodnotu.

Visit(TableExpressionBase)

Navštíví .TableExpressionBase

VisitAtTimeZone(AtTimeZoneExpression, Boolean, Boolean)

Jedná se o interní rozhraní API, které podporuje infrastrukturu Entity Framework Core a nevztahuje se na stejné standardy kompatibility jako veřejná rozhraní API. Může se změnit nebo odebrat bez upozornění v jakékoli verzi. Měli byste ho používat přímo ve svém kódu s extrémní opatrností a vědět, že to může vést k selháním aplikace při aktualizaci na novou Entity Framework Core verzi.

VisitCase(CaseExpression, Boolean, Boolean)

CaseExpression Navštíví a vypočítá jeho nulovou hodnotu.

VisitCollate(CollateExpression, Boolean, Boolean)

CollateExpression Navštíví a vypočítá jeho nulovou hodnotu.

VisitColumn(ColumnExpression, Boolean, Boolean)

ColumnExpression Navštíví a vypočítá jeho nulovou hodnotu.

VisitCustomSqlExpression(SqlExpression, Boolean, Boolean)

Navštíví vlastní SqlExpression přidanou poskytovatele a vypočítá jeho nulovou hodnotu.

VisitDistinct(DistinctExpression, Boolean, Boolean)

DistinctExpression Navštíví a vypočítá jeho nulovou hodnotu.

VisitExists(ExistsExpression, Boolean, Boolean)

ExistsExpression Navštíví a vypočítá jeho hodnotu nullability.

VisitExtension(Expression)

Třída, která zpracovává strom SQL na základě možnosti null uzlů, aby použila sémantiku null a optimalizovala ji na základě hodnot parametrů.

Tento typ obvykle používají poskytovatelé databáze (a další rozšíření). Obvykle se nepoužívá v kódu aplikace.

VisitIn(InExpression, Boolean, Boolean)

InExpression Navštíví a vypočítá jeho hodnotu nullability.

VisitJsonScalar(JsonScalarExpression, Boolean, Boolean)

JsonScalarExpression Navštíví a vypočítá jeho nulovou hodnotu.

VisitLike(LikeExpression, Boolean, Boolean)

LikeExpression Navštíví a vypočítá jeho nulovou hodnotu.

VisitRowNumber(RowNumberExpression, Boolean, Boolean)

RowNumberExpression Navštíví a vypočítá jeho nulovou hodnotu.

VisitRowValue(RowValueExpression, Boolean, Boolean)

RowValueExpression Navštíví a vypočítá jeho nulovou hodnotu.

VisitScalarSubquery(ScalarSubqueryExpression, Boolean, Boolean)

ScalarSubqueryExpression Navštíví a vypočítá jeho nulovou hodnotu.

VisitSqlBinary(SqlBinaryExpression, Boolean, Boolean)

SqlBinaryExpression Navštíví a vypočítá jeho nulovou hodnotu.

VisitSqlConstant(SqlConstantExpression, Boolean, Boolean)

SqlConstantExpression Navštíví a vypočítá jeho nulovou hodnotu.

VisitSqlFragment(SqlFragmentExpression, Boolean, Boolean)

SqlFragmentExpression Navštíví a vypočítá jeho nulovou hodnotu.

VisitSqlFunction(SqlFunctionExpression, Boolean, Boolean)

SqlFunctionExpression Navštíví a vypočítá jeho nulovou hodnotu.

VisitSqlParameter(SqlParameterExpression, Boolean, Boolean)

SqlParameterExpression Navštíví a vypočítá jeho nulovou hodnotu.

VisitSqlUnary(SqlUnaryExpression, Boolean, Boolean)

SqlUnaryExpression Navštíví a vypočítá jeho nulovou hodnotu.

Platí pro