顯示外來鍵命名
當模型上存在導航屬性時,Entity Framework 將自動建立外來鍵列。如果需要特定的外來鍵名稱但未包含在模型中的屬性中,則可以使用 Fluent API 顯式設定。通過在建立外來鍵關係時使用 Map
方法,可以將任何唯一名稱用於外來鍵。
public class Company
{
public int Id { get; set; }
}
public class Employee
{
property int Id { get; set; }
property Company Employer { get; set; }
}
public class EmployeeContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Employee>()
.HasRequired(x => x.Employer)
.WithRequiredDependent()
.Map(m => m.MapKey("EmployerId"));
}
}
指定關係後,Map
方法允許通過執行 MapKey
顯式設定外來鍵名稱。在這個例子中,導致 Employer_Id 列名的是現在的 EmployerId。