Cấu hình cho phép bạn ghi đè các quy ước mặc định của Entity Framework Core đối với ánh xạ các thực thể, các thuộc tính và mối quan hệ của chúng với cơ sở dữ liệu quan hệ.
Cấu hình có thể được áp dụng theo hai cách; sử dụng attribute cho các lớp và thuộc tính hoặc bằng cách sử dụng Fluent API.
Attribute được sử dụng để thêm siêu dữ liệu vào các lớp, thuộc tính, phương thức, v.v. trong .NET Framework.
Chúng được áp dụng cho lớp hoặc thuộc tính đích bằng cách đặt chúng trong dấu ngoặc vuông (dấu ngoặc nhọn nếu sử dụng VB.NET) ngay trước lớp hoặc thuộc tính như sau:
[MyClassAttribute]
public class MyClass
{
[MyPropertyAttribute]
public int MyProperty { get; set; }
//...
}
Bạn có thể áp dụng nhiều thuộc tính theo một trong hai cách - riêng biệt:
[MyFirstAttribute]
[MySecondAttribute]
[MyThirdAttribute]
public int MyProperty { get; set; }
//...
hoặc dưới dạng danh sách được phân tách bằng dấu phẩy:
[MyFirstAttribute, MySecondAttribute, MyThirdAttribute]
public int MyProperty { get; set; }
//...
Các attribute được Entity Framework Core sử dụng nằm trong namespace System.ComponentModel.DataAnnotations.Schema
và System.ComponentModel.DataAnnotations
. Attribute thường được gọi là Chú thích dữ liệu (Data Annotations).
Danh sách attribute trong namespace System.ComponentModel.DataAnnotations.Schema
:
Attribute | Mô tả |
---|---|
Table | Bảng cơ sở dữ liệu và / hoặc lược đồ mà một lớp được ánh xạ tới. |
Column | Cột cơ sở dữ liệu mà thuộc tính được ánh xạ tới. |
ForeignKey | Chỉ định thuộc tính được sử dụng làm khóa ngoại trong một mối quan hệ. |
DatabaseGenerated | Chỉ định cách cơ sở dữ liệu tạo ra các giá trị cho một thuộc tính. |
NotMapped | Không ánh xạ các thuộc tính hoặc lớp vào cơ sở dữ liệu. |
InverseProperty | Chỉ định nghịch đảo của thuộc tính điều hướng. |
ComplexType | Biểu thị rằng lớp là một kiểu phức tạp. * Hiện không được triển khai trong EF Core. |
Danh sách attribute trong namespace System.ComponentModel.DataAnnotations
:
Attribute | Mô tả |
---|---|
Key | Xác định một hoặc nhiều thuộc tính làm khóa. |
Timestamp | Chỉ định kiểu dữ liệu của cột cơ sở dữ liệu là rowversion |
ConcurrencyCheck | Chỉ định rằng thuộc tính được bao gồm trong kiểm tra đồng thời |
Required | Chỉ định rằng giá trị của thuộc tính là bắt buộc |
MaxLength | Thiết lập độ dài tối đa cho phép của giá trị thuộc tính (chuỗi hoặc mảng) |
StringLength | Thiết lập độ dài tối đa cho phép của giá trị thuộc tính (chuỗi hoặc mảng) |
Required
và StringLength
được tận dụng bởi các framework ứng dụng client như ASP.NET MVC để cung cấp xác thực trên giao diện người dùng dựa trên cấu hình được chỉ định.Attribute chú thích dữ liệu chỉ có thể cung cấp một tập hợp con các tùy chọn cấu hình. Cũng có thể cần phải sử dụng Fluent API để cung cấp một số cấu hình dẫn đến việc cấu hình được thực hiện ở nhiều nơi.
Cấu hình được áp dụng cho các thực thể hoặc thuộc tính của chúng thông qua chuỗi các phương thức mở rộng, là đặc điểm dễ dàng nhận ra của Fluent API.
Thực sự, không có bất kỳ nhược điểm nào khi sử dụng Fluent API.
System.ComponentModel.DataAnnotations.Schema
và System.ComponentModel.DataAnnotations
.Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.
Bài viết này sẽ giúp bạn tìm hiểu về bộ chuyển đổi giá trị - một trong những cải tiến mạnh mẽ của Entity Framework Core 5.
Trong bài viết này, chúng ta sẽ khám phá cách làm việc với các tính năng của Entity Framework Core 5 (EF Core) để thực thi truy vấn SQL thô.
Với EF Core 5, chúng ta có thể thêm view vào trong DbContext và tạo view trong database bằng cách sử dụng cơ chế chuyển đổi cơ sở dữ liệu tích hợp sẵn.
Bài viết này sẽ khám phá các mối quan hệ trong cơ sở dữ liệu quan hệ và cách mô hình hóa các mối quan hệ đó bằng cách tiếp cận Code First trong EF Core.