ThS. CNTT: Nguyễn Nghiệm – Trang 1
BÀI 2: ÁNH XẠ CSDL
MỤC TIÊU
Biết cách khai báo chuỗi kết nối trong web.config
Biết cách định nghĩa các thực thể và ánh xạ với các bảng trong CSDL
Biết cách định nghĩa lớp DbContext để ánh xạ các thực thể với CSDL
MÔ TẢ
Trong bài này bạn sẽ phải ứng dụng mô hình code-first của EF để xây dụng các lớp thực thể để làm việc
với CSDL gồm 3 bảng: Products, Categories và Suppliers được mô tả như sau:
Hình 1: Sơ đồ quan hệ
Hình 2: Chi tiết bảng Products (Hàng hóa)
ThS. CNTT: Nguyễn Nghiệm – Trang 2
Hình 3: Chi tiết bảng Categories (Loại hàng)
Hình 4: Chi tiết bảng Suppliers (Nhà cung cấp)
THỰC HIỆN
Bước 1: Định nghĩa các Entity Class và DbContext
Bước 2: Khai báo chuỗi kết nối
Bước 3: Làm việc với CSDL có sẵn
Bước 1: Định nghĩa các Entity Class & DbContext
Thêm vào thư mục Models một lớp với tên MVC4SerminarDB. Sau đó viết mã cho lớp này như sau
namespace MVC4Seminar.Models
{
/// <summary>
/// Móc nối với CSDL thông qua kết nối cùng tên với
/// class MVC4SeminarDB được khai báo trong web.config
/// </summary>
public class MVC4SeminarDB: DbContext
{
public DbSet<Product> Products { get; set; }
public DbSet<Supplier> Suppliers { get; set; }
public DbSet<Category> Categories { get; set; }
}
/// <summary>
/// Ánh xạ với bảng Products với các cột cùng tên với thuộc tính
/// </summary>
ThS. CNTT: Nguyễn Nghiệm – Trang 3
public class Product
{
public int Id { get; set; }
public String Name { get; set; }
public double UnitPrice { get; set; }
public String Image { get; set; }
public String Description { get; set; }
public int CategoryId { get; set; }
public String SupplierId { get; set; }
// thực thể kết hợp
public virtual Supplier Supplier { get; set; }
public virtual Category Category { get; set; }
}
/// <summary>
/// Ánh xạ với bảng Suppliers với các cột cùng tên với thuộc tính
/// </summary>
public class Supplier
{
public String Id { get; set; }
public String Name { get; set; }
public String Email { get; set; }
public String Phone { get; set; }
public String Logo { get; set; }
// thực thể kết hợp
public virtual List<Product> Products { get; set; }
}
/// <summary>
/// Ánh xạ với bảng Categories với các cột cùng tên với thuộc tính
/// </summary>
public class Category
{
public int Id { get; set; }
public String Name { get; set; }
public String NameVN { get; set; }
// thực thể kết hợp
public virtual List<Product> Products { get; set; }
}
}
Bước 2: Khai báo chuỗi kết nối
MVC4SerminarDB phải cùng tên với lớp DbContext ở trên nếu bạn muốn nhận biết kết nối tự động.
ThS. CNTT: Nguyễn Nghiệm – Trang 4
Bước 3: Làm việc với CSDL có sẵn
Qua bước 1 và bước 2 là đủ để bạn có thể làm việc với CSDL MVC4Seminar. CSDL sẽ được tự động tạo ra
khi bạn có thao tác đến CSDL lần đầu tiên.
Tuy nhiên trong bài này, chúng ta cần dữ liệu để minh họa, nên bạn cần tạo CSDL trước với file
MVC4Seminar.sql được đặt trong thư mục Database. Bạn chỉ cần chạy SQL Server -> mở file -> nhấn F5
là CSDL MVC4Seminar được tạo ra gồm 3 bảng như mô tả ở trên.