Như hai bài trước, bạn đã làm quen với Controller và View trong lập trình Web ASP.NET MVC, bài này tiếp tục giới thiệu về Model. Trước hết, chúng ta cần phải tìm hiểu sơ lược về Model. Model thể hiện sơ đồ dữ liệu và các nguyên tắc hoạt động để kết nối dữ liệu trong kiến trúc MVC. Model duy trì dữ liệu của ứng dụng và chứa các đối tượng cho phép truy xuất và lưu trữ dữ liệu ở cơ sở dự liệu. Các lớp trong Model cũng lưu trữ dữ liệu mô tả về thuộc tính của các đối tượng ở trong thư mục Model.
Khi lập trình ASP.NET, có lẽ bạn bắt buộc làm quen với công nghệ truy cập dự liệu .NET Framework, hay còn gọi là Entity Framework (EF). Theo đó, EF sẽ tự động gieo Model cho ứng dụng ASP.NET MVC theo nhiều cách khác nhau như Code First, Database First và Model First. Nếu bạn chưa học về EF bao giờ, hãy tìm hiểu ở: https://www.dammio.com/entity-framework-co-ban.
Sử dụng Entity Framework để tạo Model mới theo kiểu DatabaseFirst
Bạn có thể tùy chọn nhiều cách khác nhau để tạo Model, ví dụ như CodeFirst (viết code tay sau đó phát sinh dữ liệu database sau), DatabaseFirst (dựa vào database sẵn có để tạo tự động có mô hình mã nguồn), ModelFirst (xây dựng mô hình trên tập tin sơ đồ trước, sau đó tự động phát sinh mã nguồn và database sau).
Để cho đỡ rắc rối, chúng ta dùng EF để gieo mã nguồn theo kiểu DatabaseFirst, tức là bạn chỉ cần có 1 Database sau đó là có thể gieo các lớp mã nguồn từ database.
Quay trở lại dự án DammioMVC, trong cửa sổ Solution Explorer, bạn có thể thấy một thư mục tên là Model. Chuột phải lên thư mục này, chọn Add -> New Item.
Tiếp đến, bên cột trái chọn Data và khung chính bên phải chọn ADO.NET Entity Data Model, đặt tên mô hình này là Model.edmx.
Tiếp theo, bạn chọn Generate from database. Nếu chỗ này không có phần đó, bạn chọn option tương tự, dịch ra tiếng Việt nôm na như gieo mã nguồn từ cơ sở dữ liệu.
Tiếp theo, trong cửa sổ kết nối tới Database, chọn nút New Connection… và đợi một chút cửa sổ Choose Data Source hiện ra, bạn chọn Microsoft SQL Server (Client). Sau đó, chọn server và cơ sở dữ liệu bạn muốn gieo mã nguồn.
Về cơ sở dữ liệu tên là DammioMVC với 2 bảng:
- Category(CategoryID, CategoryName)
- Link(LinkID, LinkName, LinkDescription, CategoryID)
Lưu ý đối với 2 khóa chính LinkID ở bảng Link và khóa chính CategoryID ở bảng Category, bạn phải thiết lập ở SQL Server là kiểu int, khóa tự tăng. Cách thiết lập có thể xem hình ví dụ sau:
Mỗi liên kết (Link) có tên, mô tả liên kết và thuộc về 1 danh mục (Category). Tương tự, mỗi danh mục có tên danh mục và chứa nhiều liên kết.
Tiếp theo, bạn chọn tên chuỗi kết nối (ConnectionString) trong Web.Config tên là DammioMVCEntities và nhấn Next.
Tiếp theo, bạn chọn hai bảng Link và Category để gieo mã nguồn như hình. Cuối cùng, nhấn Finish để Entity Framework gieo mô hình mã nguồn vậy là xong.
Sau khi EF gieo xong mã nguồn mô hình, bạn mở Model ra xem thấy cấu trúc thư mục đã hiện các lớp mã nguồn mới như sau.
Thay đổi cấu trúc database
Bạn có thể thoải mái thay đổi cấu trúc các bảng, thuộc tính và dữ liệu trong database. Mỗi lần thay đổi thay vì gieo lại mô hình bạn có thể dùng chức năng cập nhật mô hình trong dự án. Chọn tập tin Models/Model.edmx, sau đó mở tập tin này ra bạn thấy sơ đồ cấu trúc các bảng như sau.
Chọn chuột lên vùng trống ở giao diện mô hình khi mở tập tin Model.edmx, chọn chuột phải, chọn Update model from Database…
Sau đó, bạn chọn chế độ Refresh dành cho các bảng đã thêm vào mô hình hoặc Add dành cho các bảng mới. Sau khi thao tác xong thì chọn Finish.
Vậy là xong về cách cập nhật mô hình. Trong trường hợp có lỗi phát sinh mà bạn không thể sửa được, cách tốt nhất là xóa toàn bộ nội dung trong thư mục Models và gieo lại mô hình.
Kết luận: Như vậy, bạn đã xong gieo xong mô hình (Model), để áp dụng mô hình này vào Controller và hiển thị dữ liệu ra View mời bạn xem bài tiếp theo.
- APA:
Dammio. (2018). [ASP.NET MVC] Phần 5: Thêm Model (mô hình). https://www.dammio.com/2018/04/16/asp-net-mvc-phan-5-them-model-mo-hinh.
- BibTeX:
@misc{dammio,
author = {Dammio},
title = {[ASP.NET MVC] Phần 5: Thêm Model (mô hình)},
year = {2018},
url = {https://www.dammio.com/2018/04/16/asp-net-mvc-phan-5-them-model-mo-hinh},
urldate = {2024-12-05}
}
Em làm đến bước này “Tiếp theo, trong cửa sổ kết nối tới Database, chọn nút New Connection… và đợi một chút cửa sổ Choose Data Source hiện ra, bạn chọn Microsoft SQL Server (Client). Sau đó, chọn server và cơ sở dữ liệu bạn muốn gieo mã nguồn.” thì hiện ra lỗi, mong ad giúp đỡ ạ.
“A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections.”
Bạn chưa bật SQL server nhé! Bạn có thể xem hướng dẫn ở https://www.virtual-dba.com/sql-server-services/
[…] Link bài viết: [ASP.NET MVC] Phần 5: Thêm Model (mô hình) […]