關鍵屬性

Key 是表中的一個欄位,用於唯一標識資料庫表中的每一行/記錄。

使用此屬性可覆蓋預設的 Code-First 約定。如果應用於屬性,它將用作此類的主鍵列

using System.ComponentModel.DataAnnotations;

public class Person
{
    [Key]
    public int PersonKey { get; set; }        // <- will be used as primary key
     
    public string PersonName { get; set; }    
}

如果需要複合主鍵,則[Key]屬性也可以新增到多個屬性中。複合鍵中列的順序必須以[ Key,Column(Order = x)] 的形式提供。

using System.ComponentModel.DataAnnotations;

public class Person
{
    [Key, Column(Order = 0)]
    public int PersonKey1 { get; set; }    // <- will be used as part of the primary key

    [Key, Column(Order = 1)]
    public int PersonKey2 { get; set; }    // <- will be used as part of the primary key
     
    public string PersonName { get; set; }    
}

如果沒有[Key]屬性,EntityFramework 將回退到預設約定,即使用類的屬性作為名為 Id 或“{ClassName} Id”的主鍵。

public class Person
{
    public int PersonID { get; set; }        // <- will be used as primary key
     
    public string PersonName { get; set; }    
}