关键属性

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; }    
}