internal NavigationPropertyConfiguration(PropertyInfo navigationProperty)
        {
            DebugCheck.NotNull(navigationProperty);
            Debug.Assert(navigationProperty.IsValidEdmNavigationProperty());

            _navigationProperty = navigationProperty;
        }
        // Not using the public API to avoid configuring the property as a navigation property if it wasn't one before
        internal override void ApplyPropertyConfiguration(
            PropertyInfo propertyInfo, Func<PropertyConfiguration> propertyConfiguration, ModelConfiguration modelConfiguration)
        {
            DebugCheck.NotNull(propertyInfo);
            DebugCheck.NotNull(propertyConfiguration);
            DebugCheck.NotNull(modelConfiguration);

            if (propertyInfo.IsValidEdmNavigationProperty()
                && !propertyInfo.PropertyType.IsCollection()
                && _attributeProvider.GetAttributes(propertyInfo).OfType<RequiredAttribute>().Any())
            {
                var navigationPropertyConfiguration = (NavigationPropertyConfiguration)propertyConfiguration();

                if (navigationPropertyConfiguration.RelationshipMultiplicity == null)
                {
                    navigationPropertyConfiguration.RelationshipMultiplicity = (RelationshipMultiplicity.One);
                }
            }
        }