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:
- 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.
- 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.
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.
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.
Đ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:
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:
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.