显示外键命名

当模型上存在导航属性时,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。