Table of Contents

Class RelationalParameterBasedSqlProcessor

Namespace
Microsoft.EntityFrameworkCore.Query
Assembly
Microsoft.EntityFrameworkCore.Relational.dll

A class that processes the query expression after parementer values are known.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

public class RelationalParameterBasedSqlProcessor
Inheritance
RelationalParameterBasedSqlProcessor
Inherited Members

Constructors

RelationalParameterBasedSqlProcessor(RelationalParameterBasedSqlProcessorDependencies, bool)

Creates a new instance of the RelationalParameterBasedSqlProcessor class.

public RelationalParameterBasedSqlProcessor(RelationalParameterBasedSqlProcessorDependencies dependencies, bool useRelationalNulls)

Parameters

dependencies RelationalParameterBasedSqlProcessorDependencies

Parameter object containing dependencies for this class.

useRelationalNulls bool

A bool value indicating if relational nulls should be used.

Properties

Dependencies

Relational provider-specific dependencies for this service.

protected virtual RelationalParameterBasedSqlProcessorDependencies Dependencies { get; }

Property Value

RelationalParameterBasedSqlProcessorDependencies

UseRelationalNulls

A bool value indicating if relational nulls should be used.

protected virtual bool UseRelationalNulls { get; }

Property Value

bool

Methods

ExpandFromSqlParameter(Expression, IReadOnlyDictionary<string, object?>, out bool)

Expands the parameters to FromSqlExpression inside the query expression for given parameter values.

protected virtual Expression ExpandFromSqlParameter(Expression queryExpression, IReadOnlyDictionary<string, object?> parametersValues, out bool canCache)

Parameters

queryExpression Expression

A query expression to optimize.

parametersValues IReadOnlyDictionary<string, object>

A dictionary of parameter values to use.

canCache bool

A bool value indicating if the query expression can be cached.

Returns

Expression

A processed query expression.

Optimize(Expression, IReadOnlyDictionary<string, object?>, out bool)

Optimizes the query expression for given parameter values.

public virtual Expression Optimize(Expression queryExpression, IReadOnlyDictionary<string, object?> parametersValues, out bool canCache)

Parameters

queryExpression Expression

A query expression to optimize.

parametersValues IReadOnlyDictionary<string, object>

A dictionary of parameter values to use.

canCache bool

A bool value indicating if the query expression can be cached.

Returns

Expression

An optimized query expression.

ProcessSqlNullability(Expression, IReadOnlyDictionary<string, object?>, out bool)

Processes the query expression based on nullability of nodes to apply null semantics in use and optimize it for given parameter values.

protected virtual Expression ProcessSqlNullability(Expression queryExpression, IReadOnlyDictionary<string, object?> parametersValues, out bool canCache)

Parameters

queryExpression Expression

A query expression to optimize.

parametersValues IReadOnlyDictionary<string, object>

A dictionary of parameter values to use.

canCache bool

A bool value indicating if the query expression can be cached.

Returns

Expression

A processed query expression.