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); }