Preserve extension registration order #26132
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 #26071
Description
The extension services are applied in alphabetic order instead of the order in which they were added.
The fix requires breaking some protected API on
DbContextOptions
, but this class is designed to use composition, not inheritance, so it shouldn't affect any external code.Customer impact
Extensions that depend on a provider being registered will throw errors if they happen to be sorted before the provider.
How found
Customer
Regression
Yes, introduced in rc1 by 4e3ce4e
Testing
Test for this scenario added in the PR.
Risk
Low, this reverts the behavior to pre-rc1.