外交關鍵公約

如果類 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 是沒有明確說明的外來鍵。