EF Code-First - Thuộc tính key
Key Attribute trong Entity Framework
Thuộc tính Key (Key Attribute) có thể được áp dụng cho một thuộc tính trong lớp thực thể để biến nó thành thuộc tính khóa và cột tương ứng với cột khóa chính trong cơ sở dữ liệu.
Quy ước mặc định tạo một cột khóa chính cho một thuộc tính có tên là Id
hoặc <Entity Class Name>Id
. Thuộc tính Key ghi đè quy ước mặc định này.
using System.ComponentModel.DataAnnotations;
public class Student
{
[Key]
public int StudentKey { get; set; }
public string StudentName { get; set; }
}
Như bạn có thể thấy trong ví dụ trên, thuộc tính Key được áp dụng cho thuộc tính StudentKey
của lớp thực thể Student
.
Điều này sẽ ghi đè các quy ước mặc định và tạo một cột khóa chính là StudentKey
trong bảng Students
trong cơ sở dữ liệu như dưới đây.
Thuộc tính Key có thể được áp dụng cho một thuộc tính của bất kỳ kiểu dữ liệu nguyên thủy nào ngoại trừ kiểu số nguyên không dấu.
Key Attribute trong EF 6:
Trong EF 6, thuộc tính Key cùng với thuộc tính Column
có thể được áp dụng cho nhiều thuộc tính của một lớp thực thể sẽ tạo các cột khóa chính tổng hợp trong cơ sở dữ liệu.
using System.ComponentModel.DataAnnotations;
public class Student
{
[Key]
[Column(Order=1)]
public int StudentKey { get; set; }
[Key]
[Column(Order=2)]
public int AdmissionNum { get; set; }
public string StudentName { get; set; }
}
Đoạn mã trên tạo các cột khóa chính tổng hợp StudentKey
và AdmissionNum
trong bảng Students
như dưới đây.