diff --git a/src/EFCore.MySql/Query/ExpressionVisitors/Internal/MySqlCompatibilityExpressionVisitor.cs b/src/EFCore.MySql/Query/ExpressionVisitors/Internal/MySqlCompatibilityExpressionVisitor.cs index 228e027d..2d60cdd8 100644 --- a/src/EFCore.MySql/Query/ExpressionVisitors/Internal/MySqlCompatibilityExpressionVisitor.cs +++ b/src/EFCore.MySql/Query/ExpressionVisitors/Internal/MySqlCompatibilityExpressionVisitor.cs @@ -2,6 +2,7 @@ // Licensed under the MIT. See LICENSE in the project root for license information. using System; +using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using Microsoft.EntityFrameworkCore.Diagnostics; diff --git a/src/EFCore.MySql/Query/ExpressionVisitors/Internal/MySqlQueryTranslationPostprocessor.cs b/src/EFCore.MySql/Query/ExpressionVisitors/Internal/MySqlQueryTranslationPostprocessor.cs index a47ff0a8..574e7e13 100644 --- a/src/EFCore.MySql/Query/ExpressionVisitors/Internal/MySqlQueryTranslationPostprocessor.cs +++ b/src/EFCore.MySql/Query/ExpressionVisitors/Internal/MySqlQueryTranslationPostprocessor.cs @@ -36,9 +36,6 @@ public override Expression Process(Expression query) query = new MySqlBug96947WorkaroundExpressionVisitor(_sqlExpressionFactory).Visit(query); } - // Run the compatibility checks as late in the query translation pipeline as reasonable. - query = new MySqlCompatibilityExpressionVisitor(_options).Visit(query); - return query; } } diff --git a/src/EFCore.MySql/Query/Internal/MySqlParameterBasedSqlProcessor.cs b/src/EFCore.MySql/Query/Internal/MySqlParameterBasedSqlProcessor.cs index ad64c394..c93b6ea9 100644 --- a/src/EFCore.MySql/Query/Internal/MySqlParameterBasedSqlProcessor.cs +++ b/src/EFCore.MySql/Query/Internal/MySqlParameterBasedSqlProcessor.cs @@ -55,6 +55,9 @@ public override Expression Optimize( canCache &= canCache3; + // Run the compatibility checks as late in the query pipeline (before the actual SQL translation happens) as reasonable. + queryExpression = new MySqlCompatibilityExpressionVisitor(_options).Visit(queryExpression); + return queryExpression; }