private static InternalRelationshipBuilder SplitNavigationsToSeparateRelationships(InternalRelationshipBuilder relationshipBuilder)
        {
            var foreignKey = relationshipBuilder.Metadata;
            var dependentToPrincipalNavigationName = foreignKey.DependentToPrincipal?.Name;
            var principalToDependentNavigationName = foreignKey.PrincipalToDependent?.Name;

            if (GetInversePropertyAttribute(foreignKey.PrincipalToDependent) != null ||
                GetInversePropertyAttribute(foreignKey.DependentToPrincipal) != null)
            {
                // Relationship is joined by InversePropertyAttribute
                throw new InvalidOperationException(
                          CoreStrings.InvalidRelationshipUsingDataAnnotations(
                              dependentToPrincipalNavigationName,
                              foreignKey.DeclaringEntityType.DisplayName(),
                              principalToDependentNavigationName,
                              foreignKey.PrincipalEntityType.DisplayName()));
            }

            relationshipBuilder = relationshipBuilder.HasNavigation(
                (string)null,
                pointsToPrincipal: false,
                ConfigurationSource.DataAnnotation);
            return(relationshipBuilder == null
                ? null
                : foreignKey.PrincipalEntityType.Builder.HasRelationship(
                       foreignKey.DeclaringEntityType,
                       principalToDependentNavigationName,
                       null,
                       ConfigurationSource.DataAnnotation) == null
                    ? null
                    : relationshipBuilder);
        }