Để dễ hình dung, chúng ta cùng nhìn lại mô hình do EF Database First phát sinh:
Mô hình này gồm hai lớp Khoa và SinhVien, trong mỗi lớp bên cạnh các thuộc tính như MaKhoa, TenKhoa, MaSV, v.v. còn có Navigation Properties – các thuộc tính điều hướng thể hiện mối quan hệ giữa các đối tượng Khoa và SinhVien. Để tạo các lớp Khoa và SinhVien như mô hình trên chúng ta thực hiện như sau:
– Tạo ứng dụng Console Application (lấy tên tuỳ ý, trong bài này là ManagingData)
– Thêm vào dự án hai lớp Khoa và SinhVien (nhấp chuột phải vào ManagingData > Add > New Item > Class)
Tập tin Khoa.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ManagingData { public class Khoa { public string MaKhoa { get; set; } public string TenKhoa { get; set; } // Navigation property public virtual List<SinhVien> SinhViens { get; set; } } }
Tập tin SinhVien.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ManagingData { public class SinhVien { public string MaSV { get; set; } public string TenSV { get; set; } public string Email { get; set; } public string MaKhoa { get; set; } // Navigation property public virtual Khoa Khoa { get; set; } } }
Chúng ta dùng từ khoá virtual cho Navigation property (Khoa và SinhViens) để tận dụng tính năng Lazy Loading của EF. Tính năng Lazy Loading cho phép các thuộc tính điều hướng được cập nhật tự động từ cơ sở dữ liệu khi chúng ta truy cập chúng.