顯示外來鍵命名

當模型上存在導航屬性時,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。