[6.0.1] Use the correct builder when attaching indexes on nested owned entity types #26720
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 #26659
Description
When
OwnsMany()
is called for a navigation of the same CLR type the second type the target entity type is converted to a shared-type entity type. All existing components, like indexes are then reattached to the new entity type, however the incorrect entity type builder was used for nested owned entity types.Customer impact
When a nested owned entity type has a configured index the second
OwnsMany()
call throws an exception. A workaround would be to configure the index after the secondOwnsMany()
call.How found
Customer reported on 6.0
Regression
Yes, this worked in 5.0
Testing
Added test for this scenario.
Risk
Low, the fix is to avoid using an entity type that's no longer in the model.