From 895bebc31002797c9dcd546d19f43b9baeaaec27 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Feb 2026 05:54:37 +0000 Subject: [PATCH 1/2] Initial plan From 53c9b2e6fb51d19714301cfe6bdba7eb07118252 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Feb 2026 06:06:13 +0000 Subject: [PATCH 2/2] Fix discriminator config source not updated when property name is unchanged Co-authored-by: AndriySvyryd <6539701+AndriySvyryd@users.noreply.github.com> --- src/EFCore/Metadata/Internal/TypeBase.cs | 5 +++++ .../Infrastructure/ModelValidatorTest.cs | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/EFCore/Metadata/Internal/TypeBase.cs b/src/EFCore/Metadata/Internal/TypeBase.cs index b3ad1643a37..0cfe3f25afc 100644 --- a/src/EFCore/Metadata/Internal/TypeBase.cs +++ b/src/EFCore/Metadata/Internal/TypeBase.cs @@ -488,6 +488,11 @@ public virtual Func EmptyShadowValuesFactory { if ((string?)this[CoreAnnotationNames.DiscriminatorProperty] == property?.Name) { + if (property != null) + { + FindAnnotation(CoreAnnotationNames.DiscriminatorProperty)!.UpdateConfigurationSource(configurationSource); + } + return property; } diff --git a/test/EFCore.Tests/Infrastructure/ModelValidatorTest.cs b/test/EFCore.Tests/Infrastructure/ModelValidatorTest.cs index b2f9e39f66b..7ce87479ebf 100644 --- a/test/EFCore.Tests/Infrastructure/ModelValidatorTest.cs +++ b/test/EFCore.Tests/Infrastructure/ModelValidatorTest.cs @@ -2057,6 +2057,20 @@ public virtual void Detects_missing_non_string_discriminator_values() VerifyError(CoreStrings.NoDiscriminatorValue(typeof(C).Name), modelBuilder); } + [ConditionalFact] + public virtual void Does_not_detect_missing_discriminator_values_when_using_default_discriminator_name_with_non_string_type() + { + var modelBuilder = CreateConventionModelBuilder(); + modelBuilder.Entity(); + modelBuilder.Entity().HasDiscriminator("Discriminator") + .HasValue(0) + .HasValue(1) + .HasValue(2); + modelBuilder.Entity(); + + Validate(modelBuilder); + } + [ConditionalFact] public virtual void Detects_missing_complex_type_discriminator_values() {