[5.0-rc2] Also clear the store generated values when setting a normal value #22607
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #22577
Description
Usually a value is only propagated to a foreign key and the foreign key value is not store-generated, however in TPT the property might get a store-generated value before the real value is propagated to it.
Customer Impact
The issue mostly affects a new feature - TPT when the principal key is store generated. There is a workaround where the entities to be saved are split and the dependent values cleared manually, but this isn't practical in most applications.
How found
Customer reported on RC1.
Test coverage
We were lacking test coverage for complex TPT models. This PR adds a test for the affected scenario.
Regression?
No, new feature in 5.0.
Risk
Low. The fix mostly affects a new feature - TPT and the values that are now discarded were already being discarded before, but on completion of SaveChanges instead of during execution