diff --git a/src/EFCore.Relational/Extensions/RelationalForeignKeyExtensions.cs b/src/EFCore.Relational/Extensions/RelationalForeignKeyExtensions.cs index 640804bfa23..1523f039d66 100644 --- a/src/EFCore.Relational/Extensions/RelationalForeignKeyExtensions.cs +++ b/src/EFCore.Relational/Extensions/RelationalForeignKeyExtensions.cs @@ -295,7 +295,9 @@ static bool IsMapped(IReadOnlyForeignKey foreignKey, StoreObjectIdentifier store /// The foreign key. /// if the foreign key constraint is excluded from migrations. public static bool IsExcludedFromMigrations(this IReadOnlyForeignKey foreignKey) - => (bool?)foreignKey[RelationalAnnotationNames.IsForeignKeyExcludedFromMigrations] ?? false; + => foreignKey is RuntimeForeignKey + ? throw new InvalidOperationException(CoreStrings.RuntimeModelMissingData) + : (bool?)foreignKey[RelationalAnnotationNames.IsForeignKeyExcludedFromMigrations] ?? false; /// /// Sets a value indicating whether the foreign key constraint is excluded from migrations. diff --git a/test/EFCore.Relational.Specification.Tests/Scaffolding/CompiledModelRelationalTestBase.cs b/test/EFCore.Relational.Specification.Tests/Scaffolding/CompiledModelRelationalTestBase.cs index 04688580cbc..156566decb9 100644 --- a/test/EFCore.Relational.Specification.Tests/Scaffolding/CompiledModelRelationalTestBase.cs +++ b/test/EFCore.Relational.Specification.Tests/Scaffolding/CompiledModelRelationalTestBase.cs @@ -217,7 +217,10 @@ protected override void AssertBigModel(IModel model, bool jsonColumns) var dependentNavigation = principalDerived.GetDeclaredNavigations().First(); var dependentForeignKey = dependentNavigation.ForeignKey; - Assert.False(dependentForeignKey.IsExcludedFromMigrations()); + Assert.Null(dependentForeignKey[RelationalAnnotationNames.IsForeignKeyExcludedFromMigrations]); + Assert.Equal( + CoreStrings.RuntimeModelMissingData, + Assert.Throws(() => dependentForeignKey.IsExcludedFromMigrations()).Message); var referenceOwnedNavigation = principalBase.GetNavigations().Single(); var referenceOwnedType = referenceOwnedNavigation.TargetEntityType;