Fixed bug where Limited compatbility mode would not properly cascade

This commit is contained in:
Koen Bekkenutte
2021-06-04 04:45:17 +08:00
parent bbc2d9abe1
commit 3ea1f0da40
@@ -22,19 +22,21 @@ namespace EntityFrameworkCore.Projectables.Infrastructure.Internal
} }
public QueryTranslationPreprocessor Create(QueryCompilationContext queryCompilationContext) public QueryTranslationPreprocessor Create(QueryCompilationContext queryCompilationContext)
=> new CustomQueryTranslationPreprocessor(_queryTranslationPreprocessorDependencies, queryCompilationContext, _projectableExpressionReplacer); => new CustomQueryTranslationPreprocessor(_decoratedFactory.Create(queryCompilationContext), _queryTranslationPreprocessorDependencies, queryCompilationContext, _projectableExpressionReplacer);
} }
public class CustomQueryTranslationPreprocessor : QueryTranslationPreprocessor public class CustomQueryTranslationPreprocessor : QueryTranslationPreprocessor
{ {
readonly QueryTranslationPreprocessor _decoratedPreprocessor;
readonly ProjectableExpressionReplacer _projectableExpressionReplacer; readonly ProjectableExpressionReplacer _projectableExpressionReplacer;
public CustomQueryTranslationPreprocessor(QueryTranslationPreprocessorDependencies dependencies, QueryCompilationContext queryCompilationContext, ProjectableExpressionReplacer projectableExpressionReplacer) : base(dependencies, queryCompilationContext) public CustomQueryTranslationPreprocessor(QueryTranslationPreprocessor decoratedPreprocessor, QueryTranslationPreprocessorDependencies dependencies, QueryCompilationContext queryCompilationContext, ProjectableExpressionReplacer projectableExpressionReplacer) : base(dependencies, queryCompilationContext)
{ {
_decoratedPreprocessor = decoratedPreprocessor;
_projectableExpressionReplacer = projectableExpressionReplacer; _projectableExpressionReplacer = projectableExpressionReplacer;
} }
public override Expression Process(Expression query) public override Expression Process(Expression query)
=> base.Process(_projectableExpressionReplacer.Visit(query)); => _decoratedPreprocessor.Process(_projectableExpressionReplacer.Visit(query));
} }
} }