Idioma

SqlNullabilityProcessor Classe

Definição

Uma classe que processa uma árvore SQL com base na nulidade de nós para aplicar semântica nula em uso e otimize-a com base em valores de parâmetro.

Esse tipo normalmente é usado por provedores de banco de dados (e outras extensões). Geralmente, ele não é usado no código do aplicativo.

[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
Herança
SqlNullabilityProcessor
Herança
SqlNullabilityProcessor
Atributos

Construtores

Nome Descrição
SqlNullabilityProcessor(RelationalParameterBasedSqlProcessorDependencies, Boolean)

Cria uma nova instância da SqlNullabilityProcessor classe.

SqlNullabilityProcessor(RelationalParameterBasedSqlProcessorDependencies, RelationalParameterBasedSqlProcessorParameters)

Cria uma nova instância da SqlNullabilityProcessor classe.

Propriedades

Nome Descrição
CollectionParameterTranslationMode

Um valor que indica qual modo de tradução usar.

Dependencies

Dependências específicas do provedor relacional para esse serviço.

ParametersDecorator

Dicionário de valores de parâmetro atuais em uso.

ParametersToConstantize

Uma coleção de nomes de parâmetro para constanter.

ParameterValues

Dicionário de valores de parâmetro atuais em uso.

PreferExistsToInWithCoalesce

Determina se um InExpression será transformado em um ExistsExpression quando, de outra forma, exigiria uma compensação complexa para semântica nula.

UseRelationalNulls

Um valor bool que indica se a semântica nula relacional está em uso.

Métodos

Nome Descrição
AddNonNullableColumn(ColumnExpression)

Adiciona uma coluna à lista de colunas não anuláveis para otimizações adicionais que podem usar a coluna como não anulável.

CalculateBucketPadding(Int32, RelationalTypeMapping)

Calcula o número de parâmetros de preenchimento a serem acrescentados a uma expansão de coleção de vários parâmetros para que as contagens de parâmetros se alinhem a um tamanho de bucket compartilhado. Isso é composto de CalculateParameterBucketSize(Int32, RelationalTypeMapping) e CalculatePadding(Int32, Int32).

CalculatePadding(Int32, Int32)

Calcula o número de parâmetros de preenchimento necessários para alinhar a contagem total ao tamanho do bucket mais próximo.

CalculateParameterBucketSize(Int32, RelationalTypeMapping)

Obtém o tamanho do bucket no qual os parâmetros são adicionados ao gerar uma coleção parametrizada ao usar vários parâmetros. Isso ajuda com o bloat do plano de consulta.

DoNotCache()

Marca a expressão select que está sendo processada como não pode ser armazenada em cache.

IsCollectionTable(TableExpressionBase, Expression)

Um gancho de provedor para identificar um TableExpressionBase que representa uma coleção, por exemplo, OPENJSON no SQL Server.

OptimizeNonNullableNotExpression(SqlUnaryExpression)

Tenta simplificar uma operação de notação unária em um operando não anulável.

OptimizeNotExpression(SqlExpression)

Tenta simplificar uma operação não unária.

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

Processa uma expressão de consulta para aplicar semântica nula e otimize-a.

Process(Expression, ParametersCacheDecorator)

Processa uma expressão de consulta para aplicar semântica nula e otimize-a.

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

Processa um SelectExpression para aplicar semântica nula e otimize-a.

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

Se ainda tivermos _ord coluna aqui (ela não foi removida por outras otimizações), precisamos adicionar valor para ela.

TryMakeNonNullable(SelectExpression, SelectExpression, Nullable<Boolean>)

Tenta converter a projeção fornecida selectExpression, que tem uma projeção anulável, em uma expressão idêntica que não tem uma projeção anulável. Isso é usado para extrair NULLs por exemplo, o argumento de parâmetro de SQL Server OPENJSON, a fim de permitir uma tradução mais eficiente.

UpdateParameterCollection(TableExpressionBase, SqlParameterExpression)

Dado um TableExpressionBase que foi identificado anteriormente como uma tabela de coleção parametrizada (por exemplo, OPENJSON no SQL Server, consulte IsCollectionTable(TableExpressionBase, Expression)), substitui o parâmetro para essa tabela.

Visit(SelectExpression, Boolean)

Visita um SelectExpression.

Visit(SelectExpression)

Visita um SelectExpression.

Visit(SqlExpression, Boolean, Boolean)

Visita um SqlExpression e calcula sua nulidade.

Visit(SqlExpression, Boolean)

Visita um SqlExpression e calcula sua nulidade.

Visit(TableExpressionBase)

Visita um TableExpressionBase.

VisitAtTimeZone(AtTimeZoneExpression, Boolean, Boolean)

Essa é uma API interna que dá suporte à infraestrutura de Entity Framework Core e não está sujeita aos mesmos padrões de compatibilidade que as APIs públicas. Ele pode ser alterado ou removido sem aviso prévio em qualquer versão. Você só deve usá-lo diretamente em seu código com extrema cautela e saber que fazer isso pode resultar em falhas de aplicativo ao atualizar para uma nova versão Entity Framework Core.

VisitCase(CaseExpression, Boolean, Boolean)

Visita um CaseExpression e calcula sua nulidade.

VisitCollate(CollateExpression, Boolean, Boolean)

Visita um CollateExpression e calcula sua nulidade.

VisitColumn(ColumnExpression, Boolean, Boolean)

Visita um ColumnExpression e calcula sua nulidade.

VisitCustomSqlExpression(SqlExpression, Boolean, Boolean)

Visita um personalizado SqlExpression adicionado por provedores e calcula sua nulidade.

VisitDistinct(DistinctExpression, Boolean, Boolean)

Visita um DistinctExpression e calcula sua nulidade.

VisitExists(ExistsExpression, Boolean, Boolean)

Visita um ExistsExpression e calcula sua nulidade.

VisitExtension(Expression)

Uma classe que processa uma árvore SQL com base na nulidade de nós para aplicar semântica nula em uso e otimize-a com base em valores de parâmetro.

Esse tipo normalmente é usado por provedores de banco de dados (e outras extensões). Geralmente, ele não é usado no código do aplicativo.

VisitIn(InExpression, Boolean, Boolean)

Visita um InExpression e calcula sua nulidade.

VisitJsonScalar(JsonScalarExpression, Boolean, Boolean)

Visita um JsonScalarExpression e calcula sua nulidade.

VisitLike(LikeExpression, Boolean, Boolean)

Visita um LikeExpression e calcula sua nulidade.

VisitRowNumber(RowNumberExpression, Boolean, Boolean)

Visita um RowNumberExpression e calcula sua nulidade.

VisitRowValue(RowValueExpression, Boolean, Boolean)

Visita um RowValueExpression e calcula sua nulidade.

VisitScalarSubquery(ScalarSubqueryExpression, Boolean, Boolean)

Visita um ScalarSubqueryExpression e calcula sua nulidade.

VisitSqlBinary(SqlBinaryExpression, Boolean, Boolean)

Visita um SqlBinaryExpression e calcula sua nulidade.

VisitSqlConstant(SqlConstantExpression, Boolean, Boolean)

Visita um SqlConstantExpression e calcula sua nulidade.

VisitSqlFragment(SqlFragmentExpression, Boolean, Boolean)

Visita um SqlFragmentExpression e calcula sua nulidade.

VisitSqlFunction(SqlFunctionExpression, Boolean, Boolean)

Visita um SqlFunctionExpression e calcula sua nulidade.

VisitSqlParameter(SqlParameterExpression, Boolean, Boolean)

Visita um SqlParameterExpression e calcula sua nulidade.

VisitSqlUnary(SqlUnaryExpression, Boolean, Boolean)

Visita um SqlUnaryExpression e calcula sua nulidade.

Aplica-se a