Thông thường, khi thao tác với EF Core, các thuộc tính trong các lớp thực thể sẽ được mang các quy ước mặc định. Data Anotations trong EF 6 và EF Core có thể giúp chúng ta thay đổi điều đó trong lập trình.
EF Core là framework (thư viện khung) để ánh xạ các đơn vị dữ liệu mô tả bằng lớp (đối tượng) vào cơ sở dữ liệu quan hệ, nó cho phép ánh xạ vào các bảng CSDL, tạo CSDL, truy vấn với LINQ, tạo và cập nhật vào database. Các thuộc tính chú thích dữ liệu được bao gồm trong các namespace:
- ComponentModel.DataAnnotations
- ComponentModel.DataAnnotations.Schema
Trong EF 6 cũng như trong EF Core. Các thuộc tính này không chỉ được sử dụng trong Entity Framework mà chúng còn có thể được sử dụng với ASP.NET MVC hoặc các điều khiển dữ liệu.
Các thuộc tính chú thích dữ liệu này hoạt động theo cùng một cách trong EF 6 và EF Core và hợp lệ ở cả hai.
Lưu ý: Chú thích dữ liệu chỉ cung cấp cho bạn một tập hợp con các tùy chọn cấu hình. Fluent API sẽ cung cấp đầy đủ hơn cho các tùy chọn cấu hình có sẵn trong Code-First.
Với namespace System.ComponentModel.DataAnnotations ta có các dạng sau:
Thuộc tính | Mô tả |
Key | Có thể được áp dụng cho một thuộc tính để chỉ định một thuộc tính khóa trong một thực thể và đặt cột tương ứng thành cột Khóa chính trong cơ sở dữ liệu. |
Timestamp | Có thể được áp dụng cho một thuộc tính để chỉ định kiểu dữ liệu của một cột tương ứng trong cơ sở dữ liệu dưới dạng rowversion. |
ConcurrencyCheck | Có thể được áp dụng cho một thuộc tính để chỉ định rằng cột tương ứng sẽ được đưa vào kiểm tra đồng thời lạc quan. |
Required | Có thể được áp dụng cho một thuộc tính để chỉ định rằng cột tương ứng là cột NotNull trong cơ sở dữ liệu. |
MinLength | Có thể được áp dụng cho một thuộc tính để chỉ định độ dài chuỗi tối thiểu được phép trong cột tương ứng trong cơ sở dữ liệu. |
MaxLength | Có thể được áp dụng cho một thuộc tính để chỉ định độ dài chuỗi tối đa được phép trong cột tương ứng trong cơ sở dữ liệu. |
StringLength | Có thể được áp dụng cho một thuộc tính để chỉ định độ dài chuỗi tối đa được phép trong cột tương ứng trong cơ sở dữ liệu. |
Với namespace System.ComponentModel.DataAnnotations.Schema ta có các dạng sau:
Thuộc tính | Mô tả |
Table | Có thể áp dụng cho một lớp thực thể để cấu hình tên bảng và lược đồ tương ứng trong cơ sở dữ liệu |
Column | Có thể được áp dụng cho một thuộc tính để định cấu hình tên cột, thứ tự và kiểu dữ liệu tương ứng trong cơ sở dữ liệu. |
Index | Có thể được áp dụng cho một thuộc tính để định cấu hình rằng cột tương ứng phải có Chỉ mục trong cơ sở dữ liệu. (Chỉ EF 6.1 trở đi) |
ForeignKey | Có thể được áp dụng cho một thuộc tính để đánh dấu thuộc tính đó là thuộc tính khóa ngoại. |
NotMapped | Có thể được áp dụng cho một thuộc tính hoặc lớp thực thể cần được loại trừ khỏi mô hình và không được tạo cột hoặc bảng tương ứng trong cơ sở dữ liệu. |
DatabaseGenerated | Có thể được áp dụng cho một thuộc tính để định cấu hình cách cơ sở dữ liệu bên dưới sẽ tạo ra giá trị cho cột tương ứng, ví dụ: danh tính, được tính toán hoặc không. |
InverseProperty | Có thể được áp dụng cho một thuộc tính để chỉ định nghịch đảo của thuộc tính điều hướng đại diện cho đầu kia của cùng một mối quan hệ. |
ComplexType | Đánh dấu lớp là loại ComplexType trong EF 6. ,EF Core 2.0 không hỗ trợ thuộc tính này. |
Với các thuộc tính cơ bản cùng mô tả chi tiết bên trên mong rằng sẽ giúp ích thật nhiều cho các bạn khi sử dụng Data Anotations trong EF 6 và EF Core một cách hiệu quả nhé!
Bộ môn Ứng dụng phần mềm
Trường Cao đẳng FPT Mạng cá cược bóng đá
cơ sở Hà Nội