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 =>