外交关键公约

如果类 A 与类 B 有关系,而类 B 具有与 A 的主键具有相同名称和类型的属性,则 EF 自动假定该属性是外键。

public class Department
{
    public int DepartmentId { set; get; }
    public string Name { set; get; }
    public virtual ICollection<Person> Staff { set; get; }
}

public class Person
{
    public int Id { set; get; }
    public string Name { set; get; }
    public decimal Salary { set; get; }
    public int DepartmentId { set; get; }
    public virtual Department Department { set; get; }
}

在这种情况下,DepartmentId 是没有明确说明的外键。