public void Throws_on_ambiguous_relationship()
        {
            DependentType.Property(DependentEntity.PrincipalEntityPeEKaYProperty, ConfigurationSource.Convention);
            DependentType.Property(DependentEntity.PrincipalEntityIDProperty, ConfigurationSource.Convention);
            DependentType.Property(DependentEntity.PeEKaYProperty, ConfigurationSource.Convention);

            var relationshipBuilder = DependentType.Relationship(
                PrincipalType,
                "SomeNav",
                null,
                ConfigurationSource.Convention);

            var convention             = new ForeignKeyPropertyDiscoveryConvention();
            var newRelationshipBuilder = convention.Apply(relationshipBuilder);

            Assert.NotSame(relationshipBuilder, newRelationshipBuilder);

            var otherRelationshipBuilder = DependentType.Relationship(
                PrincipalType,
                (string)null,
                null,
                ConfigurationSource.Convention);

            var otherNewRelationshipBuilder = convention.Apply(otherRelationshipBuilder);

            Assert.Same(otherRelationshipBuilder, otherNewRelationshipBuilder);

            Assert.Equal(
                CoreStrings.AmbiguousForeignKeyPropertyCandidates(
                    nameof(DependentEntity) + ".SomeNav",
                    nameof(PrincipalEntity),
                    nameof(DependentEntity),
                    nameof(PrincipalEntity),
                    "{'" + nameof(DependentEntity.PrincipalEntityPeEKaY) + "'}"),
                Assert.Throws <InvalidOperationException>(() => convention.Apply(DependentType.Metadata.Model.Builder)).Message);

            newRelationshipBuilder.Metadata.UpdateForeignKeyPropertiesConfigurationSource(ConfigurationSource.Explicit);

            convention.Apply(DependentType.Metadata.Model.Builder);
        }