显示外键命名
当模型上存在导航属性时,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。