Làm quen với ASP.NET MVC Database first
Tiếp sau phần giới thiệu về cách tiếp cận code first trong ASP.NET hôm nay mình sẽ tiếp tục làm về cách tiếp cận database first nhé
I. Khái niệm Code First trong ASP.NET MVC
Database First tức là xây dựng cơ sở dữ liệu trước rồi mới đến việc xây dựng mã nguồn ứng dụng. Database First cho phép chúng ta đảo ngược 1 mô hình từ 1 database đã tồn tại từ trước. Mô hình này được lưu trong tập tin tên là EDMX (.edmx) và có thể xem và chỉnh sửa trong Entity Framework Designer (phần thiết kế Entity Framework). Các lớp bạn tương tác trong ứng dụng sẽ được tự động phát sinh từ tập tin EDMX.
Đây là 1 cách tiếp cận được sử dụng rất phổ biến trong các hệ thống lớn khi mà 1 dự án có 1 bộ phận chuyên dụng thiết kế database
Để tìm hiểu chi tiết hơn mình sẽ làm 1 ví dụ bên dưới
II. Tạo 1 ứng dụng ASP .NET MVC với cách tiếp cận Database First
Bước 1. Tạo project
Trong bài viết này mình sử dụng Visual studio 2019 và SQL Sever 2014 Tiến hành mở và tạo 1 proejct ASP .NET MVC như sau :
Bước 2. Thiết lập dữ liệu từ database
Vì là database first nên tất nhiên mình sẽ database và các bảng nhé ^^
Đầu tiên ta sẽ mở SQL Sever vào tạo mới 1 Database có tên BlogDbFirst
Sau đó tạo 1 bảng Employee như sau:
Bước 3: Tạo các model từ database
Ở bước này chúng ta sẽ generate các modal từ các bảng có sẵn trong database mà ta sẽ kết nối sau đây
Đầu tiên ta chuột phải vào Thư mục Models chọn Add => New item => Data => ADO.NET Entity Model Như sau:
Tiếp theo chọn EF Designer From Database:
Bước tiếp theo ta sẽ kết nối database vừa tạo với project
Các bạn cần Có 2 thông tin là Sever name của Sql Sever và Database name vừa tạo và cấu hình như sau
Sau khi kết nối thành công, chuỗi connection string sẽ được tạo ra:
Cuối cùng ta sẽ chọn các bảng cần generate ra model:
Thành quả là Model Employee đã được tạo ra tự động trong Thư mục Models
Ngoài ra context kết nối database cũng đã được tạo tự động nhé.
Lưu ý là sau khi tạo xong thì mình cần phải rebuild lại project để sử dụng các model này trong controller nhé.
III. Tổng kết
- Ưu điểm:
- Dễ dàng, quen thuộc với hầu hết tất cả mọi người
- Code tự động sinh ra dựa vào các bảng trong database
- Phù hợp cho các ứng dụng lớn
- Nhược điểm:
- Không quản lý được version của database
- Bất tiện khi làm việc theo nhóm, cả nhóm thường phải chung 1 server để database thống nhất cho cả team
Dù làm theo database first hay code first thì đều có ưu nhược điểm riêng, các bạn hãy vận dụng thật linh hoạt trong các trường hợp thực tế nhé