[release/7.0] Scaffolding: Fix missing HasForeignKey when principal key is an alternate key #29731
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.
When scaffolding an EF model from a database schema and using data annotations, incomplete code is generated for foreign key constraints referencing non-primary keys. This fix enables the missing code to be scaffolded.
Fixes #29418
Customer impact
Multiple customers have reported this. The only workaround is to update the scaffolded code once you discover it's incomplete.
The only indication that the code is incomplete is a runtime exception that will occur when querying data using the foreign key:
Regression
Yes. EF Core 6 generated the correct code.
Testing
Added automated scaffolding tests covering several scenarios involving alternate principal keys.
Risk
Low. This just causes the same code to be generated whether or not you're using data annotations.