Вы можете назвать их как хотите. Необходимо различать свойства навигации, которые имеют (скалярное) свойство внешнего ключа, представленное в классе («Ассоциации внешних ключей»), и свойства навигации, которые не имеют («Независимые ассоциации»):
Ассоциации иностранных ключей :
[ForeignKey("VeryDifferentFKPropertyName")] // refers to property, NOT column
public virtual MyObject SomeOtherName { get; set; }
[Column("JustAnotherColumnName")] // map property to column name
public int VeryDifferentFKPropertyName { get; set; }
С Fluent API:
modelBuilder.Entity<SomeEntity>()
.HasRequired(e => e.SomeOtherName) // or .HasOptional(...)
.WithMany()
.HasForeignKey(e => e.VeryDifferentFKPropertyName);
modelBuilder.Entity<SomeEntity>()
.Property(e => e.VeryDifferentFKPropertyName)
.HasColumnName("JustAnotherColumnName");
Независимые ассоциации :
public virtual MyObject SomeOtherName { get; set; }
Вы можете отобразить имя столбца внешнего ключа только с помощью Fluent API:
modelBuilder.Entity<SomeEntity>()
.HasRequired(e => e.SomeOtherName) // or .HasOptional(...)
.WithMany()
.Map(a => a.MapKey("JustAnotherColumnName"));