[6.0.2] Restore the ability to break multiple FK cycles #26959
Merged
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 #26834
Description
Due to a bug fix EF lost the ability to break table cycles where each table participates in multiple cycles.
Customer impact
An exception is thrown when adding a migration that creates tables linked by multiple foreign key cycles. A workaround would be to add tables without foreign key first, then create another migration for the foreign keys.
How found
Customer report on 6.0.0.
Regression
Yes, from 5.0. Regressed by #25952
Testing
This PR adds coverage for this scenario.
Risk
Low; the fix only affects migrations produced during design-time. Quirk mode not added as there isn't a practical way to access the
AppContext
used by CLI tools.