[release/9.0] Tools: Fallback to service provider when no context types found #34759
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 #34758
Description
In 9 we introduced a circuit-breaker for discovering context types: if all the discovered context types have a corresponding
IDesignTimeDbContextFactory
implementation, then EF won't use the service provider to get the configuration. However, due to incorrect logic this path was also used when no context types were discovered and the user didn't specify the context type name.Customer impact
Running
dotnet ef migrations add
on a typical application that uses migrations project fails. This is a common scenario.A workaround is to specify the context type with
--context
How found
Reported on 9 RC1 by partner team (Aspire).
Regression
Yes, introduced in 5f0887d
Testing
Tests added.
Risk
Low.