根據慣例進行一對多對映
在最後一個示例中,你可以看到 EF 確定哪個列是外來鍵,以及它應指向哪個列。怎麼樣?通過使用約定。具有 Person 型別的屬性,其名稱為 Person,具有 PersonId 屬性,導致 EF 得出 PersonId 是外來鍵的結論,並且它指向由 Person 型別表示的表的主鍵。
但是,如果你要改變 PERSONID 到 OWNERID 和人對業主的車型別?
public class Car
{
public int CarId { get; set; }
public string LicensePlate { get; set; }
public int OwnerId { get; set; }
public virtual Person Owner { get; set; }
}
好吧,不幸的是,在這種情況下,約定不足以生成正確的資料庫模式: 
別擔心; 你可以幫助 EF 提供有關你的關係和模型中的鍵的一些提示。只需配置 Car 型別即可將 OwnerId 屬性用作 FK。建立實體型別配置並將其應用於 OnModelCreating():
public class CarEntityTypeConfiguration : EntityTypeConfiguration<Car>
{
public `CarEntityTypeConfiguration()`
{
this.HasRequired(c => c.Owner).WithMany(p => p.Cars).HasForeignKey(c => c.OwnerId);
}
}
這基本上說 Car 有一個必需的屬性 Owner( HasRequired() ),在 Owner 的型別中,Cars 屬性用於引用汽車實體( WithMany() )。最後指定了表示外來鍵的屬性( HasForeignKey() )。這為我們提供了我們想要的架構: 
你也可以從 Person 側配置關係:
public class PersonEntityTypeConfiguration : EntityTypeConfiguration<Person>
{
public `PersonEntityTypeConfiguration()`
{
this.HasMany(p => p.Cars).WithRequired(c => c.Owner).HasForeignKey(c => c.OwnerId);
}
}
這個想法是一樣的,只是兩邊是不同的(注意你如何閱讀整個事情:‘這個人有很多車,每輛車都有一個必需的車主’)。如果你配置 Person 側或 Car 側的關係無關緊要。你甚至可以包括兩者,但在這種情況下要注意在兩邊指定相同的關係!