private InternalRelationshipBuilder SplitNavigationsToSeparateRelationships(InternalRelationshipBuilder relationshipBuilder) { var foreignKey = relationshipBuilder.Metadata; var dependentToPrincipalNavigationName = foreignKey.DependentToPrincipal?.Name; var principalToDepedentNavigationName = foreignKey.PrincipalToDependent?.Name; if ((GetInversePropertyAttributeOnNavigation(foreignKey.PrincipalToDependent) != null) || (GetInversePropertyAttributeOnNavigation(foreignKey.DependentToPrincipal) != null)) { // Relationship is joined by InversePropertyAttribute throw new InvalidOperationException(CoreStrings.InvalidRelationshipUsingDataAnnotations( dependentToPrincipalNavigationName, foreignKey.DeclaringEntityType.DisplayName(), principalToDepedentNavigationName, foreignKey.PrincipalEntityType.DisplayName())); } relationshipBuilder = relationshipBuilder.PrincipalToDependent((string)null, ConfigurationSource.DataAnnotation); if (relationshipBuilder == null) { return(null); } if (foreignKey.PrincipalEntityType.Builder.Relationship( foreignKey.DeclaringEntityType.Builder, principalToDepedentNavigationName, null, ConfigurationSource.DataAnnotation) == null) { return(null); } return(relationshipBuilder); }