Để 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 KhoaSinhVien, 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 KhoaSinhVien. Để tạo các lớp KhoaSinhVien 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 KhoaSinhVien (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 (KhoaSinhViens) để 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.

Học C# và WPF >