From 214ed946151ea8cd50b998c63d27598a58a0f9ff Mon Sep 17 00:00:00 2001 From: Andriy Svyryd Date: Tue, 16 Nov 2021 21:20:27 -0800 Subject: [PATCH] Use the correct builder when attaching indexes on nested owned entity types Fixes #26659 --- src/EFCore/Metadata/Internal/PropertiesSnapshot.cs | 2 +- test/EFCore.Tests/ModelBuilding/OwnedTypesTestBase.cs | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/EFCore/Metadata/Internal/PropertiesSnapshot.cs b/src/EFCore/Metadata/Internal/PropertiesSnapshot.cs index 5d66d374114..b771bda127f 100644 --- a/src/EFCore/Metadata/Internal/PropertiesSnapshot.cs +++ b/src/EFCore/Metadata/Internal/PropertiesSnapshot.cs @@ -121,7 +121,7 @@ public virtual void Attach(InternalEntityTypeBuilder entityTypeBuilder) { var originalEntityType = indexBuilder.Metadata.DeclaringEntityType; var targetEntityTypeBuilder = originalEntityType.Name == entityTypeBuilder.Metadata.Name - || (!originalEntityType.HasSharedClrType && originalEntityType.ClrType == entityTypeBuilder.Metadata.ClrType) + || (!originalEntityType.IsInModel && originalEntityType.ClrType == entityTypeBuilder.Metadata.ClrType) ? entityTypeBuilder : originalEntityType.Builder; indexBuilder.Attach(targetEntityTypeBuilder); diff --git a/test/EFCore.Tests/ModelBuilding/OwnedTypesTestBase.cs b/test/EFCore.Tests/ModelBuilding/OwnedTypesTestBase.cs index dccdfc830a8..e3d6406308e 100644 --- a/test/EFCore.Tests/ModelBuilding/OwnedTypesTestBase.cs +++ b/test/EFCore.Tests/ModelBuilding/OwnedTypesTestBase.cs @@ -1064,7 +1064,10 @@ public virtual void Can_configure_chained_ownerships() l => l.AnotherBookLabel, ab => { ab.Ignore(l => l.Book); - ab.OwnsOne(l => l.SpecialBookLabel).Ignore(l => l.Book).Ignore(s => s.BookLabel); + ab.OwnsOne(l => l.SpecialBookLabel) + .Ignore(l => l.Book) + .Ignore(s => s.BookLabel) + .HasIndex(l => l.BookId); }); bb.OwnsOne( l => l.SpecialBookLabel, sb =>