public void ForeignKeyAttribute_sets_foreign_key_properties_when_applied_on_property_on_dependent_side() { var dependentEntityTypeBuilder = CreateInternalEntityTypeBuilder <Dependent>(); var principalEntityTypeBuilder = dependentEntityTypeBuilder.ModelBuilder.Entity(typeof(Principal), ConfigurationSource.Convention); var relationshipBuilder = dependentEntityTypeBuilder.Relationship( principalEntityTypeBuilder, "AnotherPrincipal", "Dependent", ConfigurationSource.Convention) .HasForeignKey(dependentEntityTypeBuilder.GetOrCreateProperties( new List <PropertyInfo> { Dependent.PrincipalIdProperty }, ConfigurationSource.Convention), ConfigurationSource.Convention); Assert.Equal("PrincipalId", relationshipBuilder.Metadata.Properties.First().Name); relationshipBuilder = new ForeignKeyAttributeConvention().Apply(relationshipBuilder); Assert.Equal("PrincipalAnotherFk", relationshipBuilder.Metadata.Properties.First().Name); }
public void ForeignKeyAttribute_does_not_override_configuration_from_explicit_source() { var dependentEntityTypeBuilder = CreateInternalEntityTypeBuilder <Dependent>(); var principalEntityTypeBuilder = dependentEntityTypeBuilder.ModelBuilder.Entity(typeof(Principal), ConfigurationSource.Convention); var relationshipBuilder = dependentEntityTypeBuilder.Relationship( principalEntityTypeBuilder, "Principal", "Dependent", ConfigurationSource.Convention) .HasForeignKey(dependentEntityTypeBuilder.GetOrCreateProperties( new List <PropertyInfo> { Dependent.PrincipalIdProperty }, ConfigurationSource.Convention), ConfigurationSource.Explicit); Assert.Equal("PrincipalId", relationshipBuilder.Metadata.Properties.First().Name); relationshipBuilder = new ForeignKeyAttributeConvention().Apply(relationshipBuilder); Assert.Equal("PrincipalId", relationshipBuilder.Metadata.Properties.First().Name); }