From f5f7a563e516c5713a1d91cde3ded0608d5f68e3 Mon Sep 17 00:00:00 2001 From: Laurents Meyer Date: Wed, 28 Feb 2024 12:21:48 +0100 Subject: [PATCH] Upgrade to EF Core 9.0.0-preview.1 (#1853) * Update branding to 9.0.0-preview.1. * Update dependencies. * Update project files. * Update EFCore.MySql. * Update EFCore.MySql.FunctionalTests. * Update MySQL version used in CI. * Remove special case for MySqlBug96947Workaround from tests. * Explicitly throw exception if primitive collection support has not been enabled, to ensure the error message is not lost along the way. * Update test baselines. * Add new test classes. * Fix new tests. * Add CompiledModelMySqlTest scaffolding baselines. * Fix test baselines for MariaDB. --- .github/workflows/build.yml | 3 +- Dependencies.targets | 41 +- NuGet.config | 4 +- Version.props | 4 +- dotnet-tools.json | 2 +- .../Infrastructure/MariaDbServerVersion.cs | 2 +- .../Infrastructure/MySqlServerVersion.cs | 2 +- .../Infrastructure/ServerVersionSupport.cs | 2 +- .../Internal/MySqlMigrationsModelDiffer.cs | 2 + .../Internal/MySqlJsonTableExpression.cs | 22 +- .../MySqlStringComparisonMethodTranslator.cs | 8 +- .../MySqlBoolOptimizingExpressionVisitor.cs | 2 +- .../MySqlQueryTranslationPostprocessor.cs | 2 +- ...SqlQueryTranslationPostprocessorFactory.cs | 2 +- ...yableMethodTranslatingExpressionVisitor.cs | 87 +- ...thodTranslatingExpressionVisitorFactory.cs | 2 +- test/Directory.Build.props | 1 + .../ComplexTypeBulkUpdatesMySqlTest.cs | 199 + .../NonSharedModelBulkUpdatesMySqlTest.cs | 19 +- .../NorthwindBulkUpdatesMySqlTest.cs | 334 +- ...CFiltersInheritanceBulkUpdatesMySqlTest.cs | 40 +- .../TPCInheritanceBulkUpdatesMySqlTest.cs | 34 +- ...TFiltersInheritanceBulkUpdatesMySqlTest.cs | 10 - .../TPTInheritanceBulkUpdatesMySqlTest.cs | 5 - .../EFCore.MySql.FunctionalTests.csproj | 5 + .../MaterializationInterceptionMySqlTest.cs | 41 +- .../MigrationsInfrastructureMySqlTest.cs | 337 + .../MigrationsMySqlTest.cs | 37 + .../MySqlModelBuilderGenericTest.cs | 69 + .../MySqlModelBuilderTestBase.cs | 39 + .../MySqlComplianceTest.cs | 2 +- .../AdHocAdvancedMappingsQueryMySqlTest.cs | 39 + .../Query/AdHocJsonQueryMySqlTest.cs | 272 + .../Query/AdHocManyToManyQueryMySqlTest.cs | 11 + .../Query/AdHocMiscellaneousQueryMySqlTest.cs | 36 + .../Query/AdHocNavigationsQueryMySqlTest.cs | 11 + .../Query/AdHocQueryFiltersQueryMySqlTest.cs | 106 + .../AdHocQuerySplittingQueryMySqlTest.cs | 44 + ...lexNavigationsCollectionsQueryMySqlTest.cs | 992 +- ...ionsCollectionsSharedTypeQueryMySqlTest.cs | 186 +- ...vigationsCollectionsSplitQueryMySqlTest.cs | 1806 ++-- .../Query/ComplexNavigationsQueryMySqlTest.cs | 12 +- ...plexNavigationsSharedTypeQueryMySqlTest.cs | 109 +- .../Query/ComplexTypeQueryMySqlTest.cs | 88 +- .../Query/CompositeKeysQueryMySqlTest.cs | 58 +- .../Query/CompositeKeysSplitQueryMySqlTest.cs | 488 +- .../Query/Ef6GroupByMySqlTest.cs | 112 +- .../Query/EntitySplittingQueryMySqlTest.cs | 70 +- .../Query/FunkyDataQueryMySqlTest.cs | 16 +- .../Query/GearsOfWarQueryMySqlTest.cs | 8 +- .../ManyToManyHeterogeneousQueryMySqlTest.cs | 68 - ...rthwindAggregateOperatorsQueryMySqlTest.cs | 15 + ...orthwindEFPropertyIncludeQueryMySqlTest.cs | 602 +- .../Query/NorthwindFunctionsQueryMySqlTest.cs | 70 +- .../Query/NorthwindGroupByQueryMySqlTest.cs | 66 +- .../NorthwindMiscellaneousQueryMySqlTest.cs | 74 +- .../NorthwindQueryFiltersQueryMySqlTest.cs | 6 +- .../NorthwindSelectQueryMySqlTest.MySql.cs | 46 +- .../Query/NorthwindSelectQueryMySqlTest.cs | 21 +- .../NorthwindSetOperationsQueryMySqlTest.cs | 14 +- .../Query/NorthwindSqlQueryMySqlTest.cs | 8 +- .../Query/OwnedEntityQueryMySqlTest.cs | 73 +- .../PrimitiveCollectionsQueryMySqlTest.cs | 283 +- .../Query/SimpleQueryMySqlTest.cs | 59 - .../TPCFiltersInheritanceQueryMySqlTest.cs | 62 +- .../Query/TPCGearsOfWarQueryMySqlTest.cs | 4814 +++++---- .../TPCManyToManyNoTrackingQueryMySqlTest.cs | 928 +- .../Query/TPCManyToManyQueryMySqlTest.cs | 948 +- .../Query/TPCRelationshipsQueryMySqlTest.cs | 2046 ++-- .../Baselines/BigModel/DataEntityType.cs | 173 + .../Baselines/BigModel/DbContextModel.cs | 48 + .../BigModel/DbContextModelBuilder.cs | 2758 +++++ .../BigModel/DependentBaseEntityType.cs | 192 + .../BigModel/DependentDerivedEntityType.cs | 99 + .../Baselines/BigModel/ManyTypesEntityType.cs | 9246 +++++++++++++++++ .../BigModel/OwnedType0EntityType.cs | 560 + .../Baselines/BigModel/OwnedTypeEntityType.cs | 596 ++ .../BigModel/PrincipalBaseEntityType.cs | 721 ++ ...cipalDerivedDependentBasebyteEntityType.cs | 192 + .../BigModel/PrincipalDerivedEntityType.cs | 84 + .../CheckConstraints/DataEntityType.cs | 90 + .../CheckConstraints/DbContextModel.cs | 48 + .../CheckConstraints/DbContextModelBuilder.cs | 82 + .../Baselines/ComplexTypes/DbContextModel.cs | 48 + .../ComplexTypes/DbContextModelBuilder.cs | 1106 ++ .../ComplexTypes/PrincipalBaseEntityType.cs | 1744 ++++ .../PrincipalDerivedEntityType.cs | 41 + ...unctionParameterTypeMappingContextModel.cs | 48 + ...ParameterTypeMappingContextModelBuilder.cs | 102 + .../FunctionTypeMappingContextModel.cs | 48 + .../FunctionTypeMappingContextModelBuilder.cs | 102 + .../Baselines/DbFunctions/DataEntityType.cs | 64 + .../DbFunctions/DbFunctionContextModel.cs | 48 + .../DbFunctionContextModelBuilder.cs | 322 + .../Baselines/DbFunctions/ObjectEntityType.cs | 38 + .../Dynamic_schema/DataEntityType.cs | 90 + .../Dynamic_schema/DbContextModel.cs | 48 + .../Dynamic_schema/DbContextModelBuilder.cs | 82 + .../DbContextModelCustomizer.cs | 72 + .../Baselines/Sequences/DbContextModel.cs | 48 + .../Sequences/DbContextModelBuilder.cs | 48 + .../Baselines/Tpc/DbContextModel.cs | 48 + .../Baselines/Tpc/DbContextModelBuilder.cs | 1092 ++ .../Baselines/Tpc/DependentBaseEntityType.cs | 120 + .../Baselines/Tpc/PrincipalBaseEntityType.cs | 762 ++ .../Tpc/PrincipalDerivedEntityType.cs | 129 + .../Baselines/Triggers/DataEntityType.cs | 96 + .../Baselines/Triggers/DbContextModel.cs | 48 + .../Triggers/DbContextModelBuilder.cs | 84 + .../Scaffolding/CompiledModelMySqlTest.cs | 385 + .../TestUtilities/MySqlTestHelpers.cs | 4 + .../TestUtilities/MySqlTestStoreFactory.cs | 4 +- .../MySqlXunitTestFrameworkDiscoverer.cs | 3 + .../UpdatesMySqlTest.cs | 2 +- test/EFCore.MySql.Tests/Bugs/MySqlBug96947.cs | 3 - 115 files changed, 30796 insertions(+), 6998 deletions(-) create mode 100644 test/EFCore.MySql.FunctionalTests/ModelBuilding/MySqlModelBuilderGenericTest.cs create mode 100644 test/EFCore.MySql.FunctionalTests/ModelBuilding/MySqlModelBuilderTestBase.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Query/AdHocAdvancedMappingsQueryMySqlTest.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Query/AdHocJsonQueryMySqlTest.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Query/AdHocManyToManyQueryMySqlTest.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Query/AdHocMiscellaneousQueryMySqlTest.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Query/AdHocNavigationsQueryMySqlTest.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Query/AdHocQueryFiltersQueryMySqlTest.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Query/AdHocQuerySplittingQueryMySqlTest.cs delete mode 100644 test/EFCore.MySql.FunctionalTests/Query/ManyToManyHeterogeneousQueryMySqlTest.cs delete mode 100644 test/EFCore.MySql.FunctionalTests/Query/SimpleQueryMySqlTest.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/BigModel/DataEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/BigModel/DbContextModel.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/BigModel/DbContextModelBuilder.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/BigModel/DependentBaseEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/BigModel/DependentDerivedEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/BigModel/ManyTypesEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/BigModel/OwnedType0EntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/BigModel/OwnedTypeEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/BigModel/PrincipalBaseEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/BigModel/PrincipalBasePrincipalDerivedDependentBasebyteEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/BigModel/PrincipalDerivedEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/CheckConstraints/DataEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/CheckConstraints/DbContextModel.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/CheckConstraints/DbContextModelBuilder.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/ComplexTypes/DbContextModel.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/ComplexTypes/DbContextModelBuilder.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/ComplexTypes/PrincipalBaseEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/ComplexTypes/PrincipalDerivedEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Custom_function_parameter_type_mapping/FunctionParameterTypeMappingContextModel.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Custom_function_parameter_type_mapping/FunctionParameterTypeMappingContextModelBuilder.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Custom_function_type_mapping/FunctionTypeMappingContextModel.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Custom_function_type_mapping/FunctionTypeMappingContextModelBuilder.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/DbFunctions/DataEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/DbFunctions/DbFunctionContextModel.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/DbFunctions/DbFunctionContextModelBuilder.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/DbFunctions/ObjectEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Dynamic_schema/DataEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Dynamic_schema/DbContextModel.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Dynamic_schema/DbContextModelBuilder.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Dynamic_schema/DbContextModelCustomizer.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Sequences/DbContextModel.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Sequences/DbContextModelBuilder.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Tpc/DbContextModel.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Tpc/DbContextModelBuilder.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Tpc/DependentBaseEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Tpc/PrincipalBaseEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Tpc/PrincipalDerivedEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Triggers/DataEntityType.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Triggers/DbContextModel.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/Baselines/Triggers/DbContextModelBuilder.cs create mode 100644 test/EFCore.MySql.FunctionalTests/Scaffolding/CompiledModelMySqlTest.cs diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bb99f7388..07a475338 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,8 +29,7 @@ jobs: fail-fast: false matrix: dbVersion: - - 8.0.34-mysql - - 5.7.43-mysql + - 8.0.36-mysql - 11.2.2-mariadb - 11.1.3-mariadb - 11.0.4-mariadb diff --git a/Dependencies.targets b/Dependencies.targets index 33f6c76da..e1ae374d5 100644 --- a/Dependencies.targets +++ b/Dependencies.targets @@ -1,6 +1,6 @@ - [8.0.1,8.0.999] + [9.0.0-preview.1.24081.2,9.0.0-preview.1.999999] @@ -13,36 +13,37 @@ - + - - - + + + - - - - - - - - - + + + + + + + + + - + - + + - - - - + + + + diff --git a/NuGet.config b/NuGet.config index ca4722e3c..61d71d04a 100644 --- a/NuGet.config +++ b/NuGet.config @@ -6,9 +6,9 @@ + + - - diff --git a/Version.props b/Version.props index 9a2422c08..0a28ca2d3 100644 --- a/Version.props +++ b/Version.props @@ -12,8 +12,8 @@ - "rtm" - EF Core release independent, code quality production ready, major release - "servicing" - EF Core release independent, code quality production ready, mainly bugfixes --> - 8.0.1 - servicing + 9.0.0 + preview 1