public void Non_nullability_inverts_when_navigation_to_dependent() { var dependentEntityTypeBuilder = CreateInternalEntityTypeBuilder <Dependent>(); var principalEntityTypeBuilder = dependentEntityTypeBuilder.ModelBuilder.Entity(typeof(Principal), ConfigurationSource.Convention); var relationshipBuilder = dependentEntityTypeBuilder.HasRelationship( principalEntityTypeBuilder.Metadata, nameof(Dependent.Principal), nameof(Principal.Dependent), ConfigurationSource.Convention); Assert.Equal(nameof(Dependent), relationshipBuilder.Metadata.DeclaringEntityType.DisplayName()); Assert.False(relationshipBuilder.Metadata.IsRequired); var navigation = principalEntityTypeBuilder.Metadata.FindNavigation(nameof(Principal.Dependent)); navigation = RunConvention(relationshipBuilder, navigation); Assert.Equal(nameof(Principal), navigation.ForeignKey.DeclaringEntityType.DisplayName()); Assert.True(navigation.ForeignKey.IsRequired); var logEntry = ListLoggerFactory.Log.Single(); Assert.Equal(LogLevel.Debug, logEntry.Level); Assert.Equal( CoreResources.LogNonNullableInverted(new TestLogger <TestLoggingDefinitions>()).GenerateMessage( nameof(Principal.Dependent), nameof(Principal)), logEntry.Message); }