Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[automated] Merge branch 'release/9.0' => 'main' #35430

Merged
merged 30 commits into from
Jan 16, 2025

Conversation

github-actions[bot]
Copy link

@github-actions github-actions bot commented Jan 7, 2025

I detected changes in the release/9.0 branch which have not been merged yet to main. I'm a robot and am configured to help you automatically keep main up to date, so I've opened this PR.

This PR merges commits made on release/9.0 by the following committers:

  • vseanreesermsft
  • dotnet-maestro[bot]

Instructions for merging from UI

This PR will not be auto-merged. When pull request checks pass, complete this PR by creating a merge commit, not a squash or rebase commit.

merge button instructions

If this repo does not allow creating merge commits from the GitHub UI, use command line instructions.

Instructions for merging via command line

Run these commands to merge this pull request from the command line.

git fetch
git checkout release/9.0
git pull --ff-only
git checkout main
git pull --ff-only
git merge --no-ff release/9.0

# If there are merge conflicts, resolve them and then run git merge --continue to complete the merge
# Pushing the changes to the PR branch will re-trigger PR validation.
git push https://github.com/dotnet/efcore HEAD:merge/release/9.0-to-main
or if you are using SSH
git push [email protected]:dotnet/efcore HEAD:merge/release/9.0-to-main

After PR checks are complete push the branch

git push

Instructions for resolving conflicts

⚠️ If there are merge conflicts, you will need to resolve them manually before merging. You can do this using GitHub or using the command line.

Instructions for updating this pull request

Contributors to this repo have permission update this pull request by pushing to the branch 'merge/release/9.0-to-main'. This can be done to resolve conflicts or make other changes to this pull request before it is merged.
The provided examples assume that the remote is named 'origin'. If you have a different remote name, please replace 'origin' with the name of your remote.

git fetch
git checkout -b merge/release/9.0-to-main origin/main
git pull https://github.com/dotnet/efcore merge/release/9.0-to-main
(make changes)
git commit -m "Updated PR with my changes"
git push https://github.com/dotnet/efcore HEAD:merge/release/9.0-to-main
or if you are using SSH
git fetch
git checkout -b merge/release/9.0-to-main origin/main
git pull [email protected]:dotnet/efcore merge/release/9.0-to-main
(make changes)
git commit -m "Updated PR with my changes"
git push [email protected]:dotnet/efcore HEAD:merge/release/9.0-to-main

Contact .NET Core Engineering (dotnet/dnceng) if you have questions or issues.
Also, if this PR was generated incorrectly, help us fix it. See https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1.

Mirroring and others added 22 commits November 6, 2024 20:36
…otnet-runtime build 20241203.14

Microsoft.Extensions.Caching.Memory , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.EnvironmentVariables , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.HostFactoryResolver.Sources , Microsoft.Extensions.Logging , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.BrowserDebugHost.Transport , System.Formats.Asn1 , System.Text.Encodings.Web , System.Text.Json
 From Version 9.0.0 -> To Version 9.0.1
…ng/internal/dotnet-runtime

This pull request updates the following dependencies

[marker]: <> (Begin:9dd82232-9947-4c91-873c-a50d5007af96)
## From https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- **Subscription**: 9dd82232-9947-4c91-873c-a50d5007af96
- **Build**: 20241203.14
- **Date Produced**: December 4, 2024 2:31:43 AM UTC
- **Commit**: 69ae1ac0682f4b69b1d733fbf3bdee2825a2aab2
- **Branch**: refs/heads/internal/release/9.0

[DependencyUpdate]: <> (Begin)

- **Updates**:
  - **Microsoft.Extensions.Caching.Memory**: [from 9.0.0 to 9.0.1][1]
  - **Microsoft.Extensions.Configuration**: [from 9.0.0 to 9.0.1][1]
  - **Microsoft.Extensions.Configuration.Abstractions**: [from 9.0.0 to 9.0.1][1]
  - **Microsoft.Extensions.Configuration.EnvironmentVariables**: [from 9.0.0 to 9.0.1][1]
  - **Microsoft.Extensions.Configuration.Json**: [from 9.0.0 to 9.0.1][1]
  - **Microsoft.Extensions.DependencyInjection**: [from 9.0.0 to 9.0.1][1]
  - **Microsoft.Extensions.DependencyModel**: [from 9.0.0 to 9.0.1][1]
  - **Microsoft.Extensions.HostFactoryResolver.Sources**: [from 9.0.0-rtm.24528.9 to 9.0.1-servicing.24603.14][1]
  - **Microsoft.Extensions.Logging**: [from 9.0.0 to 9.0.1][1]
  - **Microsoft.NETCore.App.Ref**: [from 9.0.0 to 9.0.1][1]
  - **Microsoft.NETCore.App.Runtime.win-x64**: [from 9.0.0 to 9.0.1][1]
  - **Microsoft.NETCore.BrowserDebugHost.Transport**: [from 9.0.0-rtm.24528.9 to 9.0.1-servicing.24603.14][1]
  - **System.Formats.Asn1**: [from 9.0.0 to 9.0.1][1]
  - **System.Text.Encodings.Web**: [from 9.0.0 to 9.0.1][1]
  - **System.Text.Json**: [from 9.0.0 to 9.0.1][1]

[1]: https://dev.azure.com/dnceng/internal/_git/dotnet-runtime/branches?baseVersion=GC9d5a6a9aa463d6d10b0b0ba6d5982cc82f363dc3&targetVersion=GC69ae1ac0682f4b69b1d733fbf3bdee2825a2aab2&_a=files

[DependencyUpdate]: <> (End)

[marker]: <> (End:9dd82232-9947-4c91-873c-a50d5007af96)
… 9 (#35289)

In 9 we changed the way we process migration of temporal tables. One of the changes was drastically reducing the number of annotations for columns which are part of temporal tables. This however caused regressions for cases where migration code was created using EF8 (and containing those legacy annotations) but then executed using EF9 tooling. Specifically, extra annotations were generating a number of superfluous Alter Column operations (which were only modifying those annotations). In EF8 we had logic to weed out those operations, but it was removed in EF9.

Fix is to remove all the legacy annotations on column operations before we start processing them. We no longer rely on them, but rather use annotations on Table operations and/or relational model. The only exception is CreateColumnOperation, so for it we convert old annotations to TemporalIsPeriodStartColumn and TemporalIsPeriodEndColumn where appropriate. Also, we are bringing back logic from EF8 which removed unnecessary AlterColumnOperations if the old and new columns are the same after the legacy temporal annotations have been removed.
…otnet-runtime build 20241210.10

Microsoft.Extensions.Caching.Memory , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.EnvironmentVariables , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.HostFactoryResolver.Sources , Microsoft.Extensions.Logging , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.BrowserDebugHost.Transport , System.Formats.Asn1 , System.Text.Encodings.Web , System.Text.Json
 From Version 9.0.1 -> To Version 9.0.1
…ng/internal/dotnet-runtime

This pull request updates the following dependencies

[marker]: <> (Begin:9dd82232-9947-4c91-873c-a50d5007af96)
## From https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- **Subscription**: 9dd82232-9947-4c91-873c-a50d5007af96
- **Build**: 20241210.10
- **Date Produced**: December 11, 2024 1:29:59 AM UTC
- **Commit**: c8acea22626efab11c13778c028975acdc34678f
- **Branch**: refs/heads/internal/release/9.0

[DependencyUpdate]: <> (Begin)

- **Updates**:
  - **Microsoft.Extensions.Caching.Memory**: [from 9.0.1 to 9.0.1][1]
  - **Microsoft.Extensions.Configuration**: [from 9.0.1 to 9.0.1][1]
  - **Microsoft.Extensions.Configuration.Abstractions**: [from 9.0.1 to 9.0.1][1]
  - **Microsoft.Extensions.Configuration.EnvironmentVariables**: [from 9.0.1 to 9.0.1][1]
  - **Microsoft.Extensions.Configuration.Json**: [from 9.0.1 to 9.0.1][1]
  - **Microsoft.Extensions.DependencyInjection**: [from 9.0.1 to 9.0.1][1]
  - **Microsoft.Extensions.DependencyModel**: [from 9.0.1 to 9.0.1][1]
  - **Microsoft.Extensions.HostFactoryResolver.Sources**: [from 9.0.1-servicing.24603.14 to 9.0.1-servicing.24610.10][1]
  - **Microsoft.Extensions.Logging**: [from 9.0.1 to 9.0.1][1]
  - **Microsoft.NETCore.App.Ref**: [from 9.0.1 to 9.0.1][1]
  - **Microsoft.NETCore.App.Runtime.win-x64**: [from 9.0.1 to 9.0.1][1]
  - **Microsoft.NETCore.BrowserDebugHost.Transport**: [from 9.0.1-servicing.24603.14 to 9.0.1-servicing.24610.10][1]
  - **System.Formats.Asn1**: [from 9.0.1 to 9.0.1][1]
  - **System.Text.Encodings.Web**: [from 9.0.1 to 9.0.1][1]
  - **System.Text.Json**: [from 9.0.1 to 9.0.1][1]

[1]: https://dev.azure.com/dnceng/internal/_git/dotnet-runtime/branches?baseVersion=GC69ae1ac0682f4b69b1d733fbf3bdee2825a2aab2&targetVersion=GCc8acea22626efab11c13778c028975acdc34678f&_a=files

[DependencyUpdate]: <> (End)

[marker]: <> (End:9dd82232-9947-4c91-873c-a50d5007af96)
…ntly slower in .NET9 vs. .NET8 when using .ToJson() Mapping vs. PostgreSQL Legacy POCO mapping (#35360)

* Fix to #35239 - EF9: SaveChanges() is significantly slower in .NET9 vs. .NET8 when using .ToJson() Mapping vs. PostgreSQL Legacy POCO mapping

Fixes #35239

Description

EF9 introduced a change in how we construct ValueComparers for some of our types (specifically collection of scalars/references), in preparation for AOT work. The way the change was implemented may cause a severe performance regression during SaveChanges operation involving multiple entities using collections of primitives (one of our highly requested features).

Customer impact

Customers performing data manipulation operations on entities with collections of primitives may experience significant performance regressions. This may also happen when no data has been changed, but sufficiently large entity graph has been loaded into change tracker. There is no workaround for this issue, apart from changing the model to not use primitive collections (which is unacceptable for majority of customers)

How found

Multiple customer reports on EF 9

Regression

Yes, from EF8. Note: this is a perf regression only, not a functional regression.

Testing

Ad hoc performance test using BenchmarkDotNet. Functional testing already covered by existing tests.

Risk

Low. The patch fix has been limited in scope to reduce the risk. Changes should only affect models with primitive collections. Added quirks just to be sure.
…223.3 (#35415)

[release/9.0] Update dependencies from dotnet/arcade
@github-actions github-actions bot requested a review from a team as a code owner January 13, 2025 22:05
@AndriySvyryd AndriySvyryd force-pushed the merge/release/9.0-to-main branch from f793713 to 19227db Compare January 15, 2025 23:54
@AndriySvyryd AndriySvyryd merged commit be2ca60 into main Jan 16, 2025
7 checks passed
@AndriySvyryd AndriySvyryd deleted the merge/release/9.0-to-main branch January 16, 2025 01:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants