public void RequiredAttribute_does_not_set_is_required_for_navigation_to_dependent() { var dependentEntityTypeBuilder = CreateInternalEntityTypeBuilder <Dependent>(); var principalEntityTypeBuilder = dependentEntityTypeBuilder.ModelBuilder.Entity(typeof(Principal), ConfigurationSource.Convention); var relationshipBuilder = dependentEntityTypeBuilder.Relationship( principalEntityTypeBuilder, nameof(Dependent.Principal), nameof(Principal.Dependent), ConfigurationSource.Convention); var navigation = principalEntityTypeBuilder.Metadata.FindNavigation(nameof(Principal.Dependent)); Assert.False(relationshipBuilder.Metadata.IsRequired); relationshipBuilder = new RequiredNavigationAttributeConvention().Apply(relationshipBuilder, navigation); Assert.False(relationshipBuilder.Metadata.IsRequired); }
public void RequiredAttribute_overrides_configuration_from_convention_source() { var dependentEntityTypeBuilder = CreateInternalEntityTypeBuilder <Post>(); var principalEntityTypeBuilder = dependentEntityTypeBuilder.ModelBuilder.Entity(typeof(Blog), ConfigurationSource.Convention); var relationshipBuilder = dependentEntityTypeBuilder.Relationship( principalEntityTypeBuilder, nameof(Post.Blog), nameof(Blog.Posts), ConfigurationSource.Convention); var navigation = dependentEntityTypeBuilder.Metadata.FindNavigation(nameof(BlogDetails.Blog)); relationshipBuilder.IsRequired(false, ConfigurationSource.Convention); Assert.False(relationshipBuilder.Metadata.IsRequired); relationshipBuilder = new RequiredNavigationAttributeConvention().Apply(relationshipBuilder, navigation); Assert.True(relationshipBuilder.Metadata.IsRequired); Assert.Contains(principalEntityTypeBuilder.Metadata.GetNavigations(), nav => nav.Name == nameof(Blog.Posts)); Assert.Contains(dependentEntityTypeBuilder.Metadata.GetNavigations(), nav => nav.Name == nameof(Post.Blog)); }