From 00a312aefbc76e8582c008424d4c847b48f57eb8 Mon Sep 17 00:00:00 2001 From: Felipe Quintella Date: Wed, 3 Jun 2026 15:23:40 -0300 Subject: [PATCH 01/21] Upgrade to EF Core 10. Recompile the provider against EF Core 10.0 and move the runtime target frameworks to net10.0 (tests likewise). Branding set to 10.0.0-preview.1. Provider (src) changes for EF Core 10 API breaks: - Query pipeline: RelationalParameterBasedSqlProcessor.Optimize() is obsolete; override Process(Expression, ParametersCacheDecorator) instead. Parameter values are now read through ParametersCacheDecorator. Updated MySqlParameterBasedSqlProcessor, SkipTakeCollapsingExpressionVisitor and MySqlParameterInliningExpressionVisitor accordingly. - Implement new abstract SqlExpressionVisitor.VisitRightJoin. - IsValidSelectExpressionForExecuteDelete is now a single-parameter overload. - RelationalQueryCompilationContext ctor / IQueryCompilationContextFactory .CreatePrecompiled no longer take nonNullableReferenceTypeParameters. - QueryCompilationContext.QueryParameterPrefix removed and parameter naming reworked; use SqlParameterExpression.InvariantName and QueryContext.Parameters. - TranslateParameterizedCollectionsToConstants() -> UseParameterizedCollectionMode. - Shared Check.cs updated for parameterless AbstractionsStrings resources. Packages: EFCoreVersion -> [10.0.0,10.0.999]; Microsoft.Extensions/AspNetCore/ System.Text.Json/etc. -> 10.0.0; Roslyn 4.14.0; xunit 2.9.3 / runner.vs 3.1.3; NetTopologySuite 2.6.0; Castle.Core 5.2.1. Enabled central transitive pinning and pinned System.Security.Cryptography.Xml 10.0.8 (CVE). Tests ported to EF Core 10 spec-test API changes: async-only query tests, tests removed/moved into *TranslationsTestBase classes, the NonSharedFixture ctor parameter on non-shared test bases, RelationalConnection/CommandBuilder dependency and RelationalCommand logCommandText changes, and IAsyncDisposable-only test stores. SQL baselines reconciled to EF Core 10 output via EF_TEST_REWRITE_BASELINES. Co-Authored-By: Claude Opus 4.8 --- Directory.Build.props | 8 +- Directory.Packages.props | 58 +- Version.props | 4 +- dotnet-tools.json | 2 +- global.json | 2 +- .../MySqlDbContextOptionsBuilderExtensions.cs | 9 +- .../MySqlStringComparisonMethodTranslator.cs | 9 +- .../MySqlBoolOptimizingExpressionVisitor.cs | 14 + ...MySqlParameterInliningExpressionVisitor.cs | 18 +- .../MySqlParameterBasedSqlProcessor.cs | 22 +- .../Internal/MySqlQueryCompilationContext.cs | 5 +- .../MySqlQueryCompilationContextFactory.cs | 4 +- ...yableMethodTranslatingExpressionVisitor.cs | 34 +- .../SkipTakeCollapsingExpressionVisitor.cs | 22 +- src/Shared/Check.cs | 8 +- .../ComplexTypeBulkUpdatesMySqlTest.cs | 642 ++-- .../NonSharedModelBulkUpdatesMySqlTest.cs | 33 +- .../NorthwindBulkUpdatesMySqlTest.cs | 333 +- ...CFiltersInheritanceBulkUpdatesMySqlTest.cs | 57 +- .../TPCInheritanceBulkUpdatesMySqlTest.cs | 85 +- ...HFiltersInheritanceBulkUpdatesMySqlTest.cs | 45 +- .../TPHInheritanceBulkUpdatesMySqlTest.cs | 57 +- ...TFiltersInheritanceBulkUpdatesMySqlTest.cs | 36 +- .../TPTInheritanceBulkUpdatesMySqlTest.cs | 48 +- .../ConnectionSettingsMySqlTest.cs | 2 + .../EntitySplittingMySqlTest.cs | 4 +- .../MaterializationInterceptionMySqlTest.cs | 3 +- .../MigrationsInfrastructureMySqlTest.cs | 8 +- .../AdHocAdvancedMappingsQueryMySqlTest.cs | 3 +- .../Query/AdHocJsonQueryMySqlTest.cs | 165 +- .../Query/AdHocManyToManyQueryMySqlTest.cs | 3 +- .../Query/AdHocMiscellaneousQueryMySqlTest.cs | 12 +- .../Query/AdHocNavigationsQueryMySqlTest.cs | 3 +- .../Query/AdHocQueryFiltersQueryMySqlTest.cs | 3 +- .../AdHocQuerySplittingQueryMySqlTest.cs | 2 +- ...lexNavigationsCollectionsQueryMySqlTest.cs | 46 +- ...vigationsCollectionsSplitQueryMySqlTest.cs | 95 +- .../Query/ComplexNavigationsQueryMySqlTest.cs | 6 +- ...plexNavigationsSharedTypeQueryMySqlTest.cs | 12 +- .../Query/ComplexTypeQueryMySqlTest.cs | 300 +- .../Query/DateOnlyQueryMySqlTest.cs | 38 +- .../Query/Ef6GroupByMySqlTest.cs | 8 +- .../Query/EntitySplittingQueryMySqlTest.cs | 8 +- .../Query/EscapesMySqlNoBackslashesTest.cs | 6 +- .../Query/EscapesMySqlTest.cs | 6 +- .../Query/GearsOfWarQueryMySqlTest.cs | 66 +- .../Query/JsonMicrosoftDomQueryTest.cs | 58 +- .../Query/JsonMicrosoftPocoQueryTest.cs | 6 +- .../Query/JsonNewtonsoftDomQueryTest.cs | 58 +- .../Query/JsonNewtonsoftPocoQueryTest.cs | 6 +- .../Query/JsonPocoQueryTestBase.cs | 42 +- .../Query/JsonStringQueryTestBase.cs | 44 +- .../Query/MatchQueryMySqlTest.cs | 19 +- ...haredPrimitiveCollectionsQueryMySqlTest.cs | 149 +- ...orthwindDbFunctionsQueryMySqlTest.MySql.cs | 16 +- ...orthwindEFPropertyIncludeQueryMySqlTest.cs | 132 +- .../Query/NorthwindFunctionsQueryMySqlTest.cs | 2732 +---------------- .../Query/NorthwindGroupByQueryMySqlTest.cs | 160 +- .../NorthwindMiscellaneousQueryMySqlTest.cs | 192 +- .../NorthwindQueryFiltersQueryMySqlTest.cs | 6 +- .../NorthwindSetOperationsQueryMySqlTest.cs | 20 +- ...StringComparisonFunctionsQueryMySqlTest.cs | 55 +- .../Query/NorthwindWhereQueryMySqlTest.cs | 394 +-- .../Query/NullSemanticsQueryMySqlTest.cs | 6 +- .../Query/OperatorsProceduralMySqlTest.cs | 3 +- .../Query/OperatorsQueryMySqlTest.cs | 3 +- .../Query/OwnedEntityQueryMySqlTest.cs | 2 +- .../PrimitiveCollectionsQueryMySqlTest.cs | 687 +++-- .../Query/SharedTypeQueryMySqlTest.cs | 3 +- .../Query/SpatialQueryMySqlTest.cs | 181 +- .../Query/SqlQueryMySqlTest.cs | 48 +- .../TPCFiltersInheritanceQueryMySqlTest.cs | 10 +- .../Query/TPCGearsOfWarQueryMySqlTest.cs | 2035 ++---------- .../TPCManyToManyNoTrackingQueryMySqlTest.cs | 68 +- .../Query/TPCManyToManyQueryMySqlTest.cs | 68 +- .../Query/TPTGearsOfWarQueryMySqlTest.cs | 58 +- .../Query/ToSqlQueryMySqlTest.cs | 3 +- .../CheckConstraints/DataEntityType.cs | 48 +- .../Baselines/DbFunctions/DataEntityType.cs | 37 +- .../Baselines/DbFunctions/ObjectEntityType.cs | 11 +- .../Dynamic_schema/DataEntityType.cs | 48 +- .../SimpleModel/DependentDerivedEntityType.cs | 61 +- .../Tpc_Sprocs/DependentBaseEntityType.cs | 92 +- .../Tpc_Sprocs/PrincipalBaseEntityType.cs | 392 ++- .../Tpc_Sprocs/PrincipalDerivedEntityType.cs | 17 +- .../Baselines/Triggers/DataEntityType.cs | 48 +- .../Scaffolding/CompiledModelMySqlTest.cs | 2 +- .../TPTTableSplittingMySqlTest.cs | 4 +- .../TableSplittingMySqlTest.cs | 4 +- .../DebugServices/DebugRelationalCommand.cs | 3 +- .../DebugRelationalCommandBuilder.cs | 5 +- .../TestUtilities/MySqlTestStore.cs | 2 +- .../Update/NonSharedModelUpdatesMySqlTest.cs | 3 +- .../Update/StoredProcedureUpdateMySqlTest.cs | 2 +- .../Commands/TestPerformanceCommand.cs | 2 + test/EFCore.MySql.IntegrationTests/Program.cs | 4 + .../MySqlRelationalConnectionTest.cs | 4 +- .../MySqlTestFixtureBase.cs | 2 +- test/EFCore.MySql.Tests/TestBase.cs | 2 +- 99 files changed, 3231 insertions(+), 7180 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 1f44703b7..a04edf867 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -26,10 +26,10 @@ - net8.0 - net9.0 - net8.0 - net9.0 + net10.0 + net10.0 + net10.0 + net10.0 net8.0 net8.0 diff --git a/Directory.Packages.props b/Directory.Packages.props index c4e17801f..8b371925b 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -3,7 +3,9 @@ - [9.0.0,9.0.999] + [10.0.0,10.0.999] + + true @@ -15,46 +17,48 @@ - + - - - - + + + + - - - - - - - - - + + + + + + + + + - + - + + + - - - - + + + + - - - - - - + + + + + + \ No newline at end of file diff --git a/Version.props b/Version.props index 90e3fc0d5..98db1e551 100644 --- a/Version.props +++ b/Version.props @@ -10,8 +10,8 @@ We also used alpha/beta/silver release types in the past, but they mix poorly with the ones above when orderend according to SemVer2 rules. --> - 9.0.1 - servicing + 10.0.0 + preview 1 10.0.0 - preview + rtm 1 - 10.0.0 + 10.0.1 rtm 1 From f7ca36a92f5087cb4de6a676bac213445d6e03d1 Mon Sep 17 00:00:00 2001 From: Felipe Quintella Date: Mon, 8 Jun 2026 14:58:57 -0300 Subject: [PATCH 16/21] Bump version to 10.0.0-rtm.2 (revert 10.0.1 patch bump). Co-Authored-By: Claude Opus 4.8 --- Version.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Version.props b/Version.props index a30b0ae08..a8e8bfbd8 100644 --- a/Version.props +++ b/Version.props @@ -10,9 +10,9 @@ We also used alpha/beta/silver release types in the past, but they mix poorly with the ones above when orderend according to SemVer2 rules. --> - 10.0.1 + 10.0.0 rtm - 1 + 2 10.0.0 rtm - 2 + 3