Enum trong Entity Framework

Enum được hỗ trợ trong Entity Framework (EF) 5.0 trở đi. Enum có thể được tạo cho các kiểu dữ liệu sau:

  • Int16
  • Int32
  • Int64
  • Byte
  • SByte

Enum có thể được sử dụng theo những cách sau:

  1. Chuyển đổi một thuộc tính hiện có của một thực thể thành kiểu enum từ trình thiết kế EDM.
  2. Sử dụng một kiểu enum hiện có từ một namespace khác nhau.

Sử dụng Enum cho thuộc tính trong Entity Framework

Ở đây, chúng tôi sẽ sử dụng cột TeacherType kiểu  số nguyên trong bảng Teacher. Giá trị enum TeacherType là:

  • 1 là giáo viên cơ hữu.
  • 2 là giáo viên hợp đồng.
  • 3 là giáo viên thỉnh giảng.
Sử dụng Enum cho thuộc tính trong Entity Framework

Bây giờ, để chuyển đổi thuộc tính TeacherType thành kiểu enum từ trình thiết kế, bạn nhấp chuột phải vào thuộc tính TeacherType của thực thể Teacher và nhấp vào Convert to Enum trong menu ngữ cảnh, như hiển thị trong hình bên dưới.

Sử dụng Enum cho thuộc tính trong Entity Framework

Nó sẽ mở hộp thoại Add Enum Type. Nhập tên kiểu enum là TeacherType và chọn Int32 trong danh sách 'Underlying Type'. Nhập tên các thành viên của enum như dưới đây.

Sử dụng Enum cho thuộc tính trong Entity Framework

Điều này sẽ thêm kiểu enum TeacherType trong trình duyệt mô hình, như được hiển thị trong hình bên dưới:

Sử dụng Enum cho thuộc tính trong Entity Framework

Ngoài ra, bạn có thể thấy rằng kiểu dữ liệu của thuộc tính TeacherType được chuyển đổi thành kiểu enum TeacherType như hình dưới đây:

Sử dụng Enum cho thuộc tính trong Entity Framework

Bây giờ, bạn có thể sử dụng enum TeacherType để gán giá trị cho thuộc tính TeacherType thay vì các giá trị số nguyên, như được hiển thị bên dưới.

using (var ctx = new SchoolDBEntities())
{
    Teacher tchr = new Teacher();
    tchr.TeacherName = "New Teacher";

    //assign enum value
    tchr.TeacherType = TeacherType.Permanent;

    ctx.Teachers.Add(tchr);

    ctx.SaveChanges();
}

Sử dụng Enum có sẵn trong Entity Framework

Nếu bạn đã có một kiểu enum được tạo trong mã của mình, thì bạn có thể sử dụng làm kiểu dữ liệu của bất kỳ thuộc tính của thực thể nào trong Entity Framework (EF).

Để sử dụng loại enum hiện có, bạn nhấp chuột phải vào trình thiết kế → Add New → Enum Type. Nhập tên kiểu enum trong hộp thoại. Không nhập thông tin các thành viên của enum vì bạn đã định nghĩa sẵn trong enum của bạn.

Bây giờ, đánh dấu vào hộp kiểm 'Reference external type' và nhập namespace của enum hiện tại của bạn và nhấp vào OK.

Điều này sẽ thêm kiểu enum trong trình duyệt mô hình. Bây giờ, bạn có thể gán kiểu enum này cho bất kỳ thuộc tính thích hợp nào của bất kỳ thực thể nào từ cửa sổ thuộc tính.

Lưu ý: Chọn 'Set Flags attribute' nếu bạn muốn sử dụng toán tử bitwise với enum của mình.


Bài viết liên quan:

2 kịch bản lưu dữ liệu trong Entity Framework Core là kịch bản được kết nối và kịch bản ngắt kết nối.

Tạo ứng dụng .NET Core Console đầu tiên và cấu hình sử dụng Entity Framework Core.

Truy vấn trong Entity Framework Core có gì mới? Truy vấn trong EF Core khác EF ở những điểm nào.