EF Code-First - Attribute chú thích dữ liệu

Attribute chú thích dữ liệu trong Entity Framework

Attribute (thuộc tính) chú thích dữ liệu là các thuộc tính .NET có thể được áp dụng trên một lớp thực thể hoặc thuộc tính để ghi đè các quy ước mặc định trong EF 6 và EF Core.

Các attribute chú thích dữ liệu có trong namespace System. ComponentModel. DataAnnotationsSystem. 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 trong ASP.NET WebForm và ASP.NET MVC hoặc các điều khiển dữ liệu.

Các attribute 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à có giá trị trong 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 cung cấp một bộ đầy đủ các tùy chọn cấu hình có sẵn trong Code-First.

Các attribute chú thích dữ liệu

Các attribute chú thích dữ liệu của namespace System. ComponentModel. DataAnnotations

Attribute 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à biến 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 như rowversion.
ConcurrencyCheck Có thể được áp dụng cho một thuộc tính để chỉ định rằng cột tương ứng phải được đưa vào kiểm tra concurrency.
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 của 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 của 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 của cột tương ứng trong cơ sở dữ liệu.

Các attribute chú thích dữ liệu của namespace System. ComponentModel. DataAnnotations. Schema

Attribute Mô tả
Table Có thể được á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 để 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 để cấu hình rằng cột tương ứng sẽ có một Index trong cơ sở dữ liệu. (Chỉ từ EF 6.1 trở đi)
ForeignKey Có thể được áp dụng cho một thuộc tính để đánh dấu nó là một 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 nên tạo một 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 để cấu hình cách cơ sở dữ liệu cơ sở sẽ tạo giá trị cho cột tương ứng, ví dụ: identity, computed hoặc none.
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à kiểu phức tạp trong EF 6. EF Core 2.0 không hỗ trợ thuộc tính này.