/// <summary>
 ///     This is an internal API that supports the Entity Framework Core infrastructure and not subject to
 ///     the same compatibility standards as public APIs. It may be changed or removed without notice in
 ///     any release. You should only use it directly in your code with extreme caution and knowing that
 ///     doing so can result in application failures when updating to a new Entity Framework Core release.
 /// </summary>
 public ParameterExtractingExpressionVisitor(
     IEvaluatableExpressionFilter evaluatableExpressionFilter,
     IParameterValues parameterValues,
     Type contextType,
     IDiagnosticsLogger <DbLoggerCategory.Query> logger,
     bool parameterize,
     bool generateContextAccessors)
 {
     _evaluatableExpressionFindingExpressionVisitor
         = new EvaluatableExpressionFindingExpressionVisitor(evaluatableExpressionFilter);
     _parameterValues          = parameterValues;
     _logger                   = logger;
     _parameterize             = parameterize;
     _generateContextAccessors = generateContextAccessors;
     if (_generateContextAccessors)
     {
         _contextParameterReplacingExpressionVisitor
             = new ContextParameterReplacingExpressionVisitor(contextType);
     }
 }
Exemplo n.º 2
0
 public ParameterExtractingExpressionVisitor(
     [NotNull] IEvaluatableExpressionFilter evaluatableExpressionFilter,
     [NotNull] IParameterValues parameterValues,
     [NotNull] Type contextType,
     [NotNull] IModel model,
     [NotNull] IDiagnosticsLogger <DbLoggerCategory.Query> logger,
     bool parameterize,
     bool generateContextAccessors)
 {
     _evaluatableExpressionFindingExpressionVisitor
         = new EvaluatableExpressionFindingExpressionVisitor(evaluatableExpressionFilter, model, parameterize);
     _parameterValues          = parameterValues;
     _logger                   = logger;
     _parameterize             = parameterize;
     _generateContextAccessors = generateContextAccessors;
     // The entry method will take care of populating this field always. So accesses should be safe.
     _evaluatableExpressions = null !;
     // TODO: Use MemberNotNullWhen
     // Value won't be accessed when condition is not met.
     _contextParameterReplacingExpressionVisitor = _generateContextAccessors
         ? new ContextParameterReplacingExpressionVisitor(contextType)
         : null !;
 }