Blogs

[Entity Framework] Phần 5: Tạo mô hình trước (Model First)

Bạn đang quan tâm đến [Entity Framework] Phần 5: Tạo mô hình trước (Model First) phải không? Nào hãy cùng ONLINEAZ đón xem bài viết này ngay sau đây nhé, vì nó vô cùng thú vị và hay đấy!

XEM VIDEO [Entity Framework] Phần 5: Tạo mô hình trước (Model First) tại đây.

Model first là gì

<< Bài trước Trang mục lục Bài tiếp theo >>

Một cách tiếp cận khác khi phát triển ứng dụng phần mềm là xây dựng mô hình trước, tạo database và gieo mã nguồn sau. Phương pháp này giúp cho chúng ta nắm và hình dung được mô hình phần mềm ở mức độ tổng quan, từ đó mới phân chia phần mềm thành các phần con và triển khai xây dựng ứng dụng. Thông thường, các ứng dụng có quy mô lớn đến rất lớn sẽ ưu tiên sử dụng phương pháp này. Lý do là ở những ứng dụng này, cái người ta cần là có sự quy hoạch chuẩn xác trên giấy (mô hình) vì quy mô quá lớn thay vì chỉ có tầm nhìn hạn hẹp làm tới đâu biết đến đó với những cách tiếp cận xây dựng phần mềm khác. Đôi khi có những module trùng lặp hoặc có sự kết nối/kế thừa giữa các module trong ứng dụng lớn, mô hình giúp chúng ta hình dung và giải quyết được các vấn đề đó.

Ví dụ xây dựng 1 hệ thống thông tin quản lý điện tử của 1 trường đại học bao gồm các chức năng như tin tức/thông báo, quản lý học phần/điểm, quản lý sinh viên, quản lý cán bộ, quản lý tiền lương cán bộ, quản lý thời khóa biểu, quản lý trung tâm thư viện, quản lý ký túc xá, quản lý nghiên cứu khoa học, quản lý đối tác/cộng tác, quản lý tuyển sinh, … Ở hệ thống này, vì có quá nhiều module cho nên chúng ta không thể xây dựng theo kiểu Code First hay Database First do không thể nắm và tối ưu hết được các công đoạn cần làm. Chẳng hạn, chúng ta xây dựng bảng SinhVien dùng để lưu trữ sinh viên, nếu để ý có thể thấy bảng SinhVien có thể dùng cho các module như: quản lý học phần/điểm, quản lý sinh viên, quản lý thời khóa biểu, quản lý thư viện (mượn trả sách), … Nếu xây dựng phần mềm theo các phương pháp khác, đôi khi chúng ta khó nhìn tổng quan vì vậy có thể tạo bảng SinhVien lặp lại ở nhiều module con.

Bạn đang xem: Model first là gì

Model First cho phép bạn tạo 1 mô hình dùng Entity Framework Designer và sau đó gieo lược đồ cơ sở dữ liệu từ mô hình. Mô hình được lưu trữ ở tập tin EDMX (.edmx) và có thể xem, chỉnh sửa ở Entity Framework Designer. Các lớp tương tác với ứng dụng được tự động gieo từ tập tin EDMX.

XEM THÊM:  Cách chuyển tài khoản FIFA Online 3 sang FIFA Online 4

Tương tự như Database First hay Code First, bạn cần có Visual Studio 2013 để thực hiện ứng dụng. Nếu bạn xài VS 2010 hay VS 2012 bạn cần cài đặt thêm gói NuGet.

1. Tạo ứng dụng Để các bạn dễ nắm bắt, chúng ta sẽ tạo 1 ứng dụng Console dùng Model First để thực thi truy cập dữ liệu.

Mở Visual Studio, chọn File -> New -> Project…, chọn Visual C# và Console Application, đặt tên ứng dụng là DammioModelFirst, sau đó nhấn OK.

2. Tạo mô hình Để tạo mô hình cho ứng dụng, chúng ta chọn Project, chuột phải -> Add -> Add New Item…

Tiếp đến bạn chọn mục Data dưới mục Visual C# Items bên menu trái và chọn onlineaz.vn Entity Data Model, đặc tên mô hình là DammioModel, chọn Empty EF Designer Model (hoặc Empty model) và nhấn Finish để hoàn thành.

Tiếp theo, tập tin onlineaz.vn được mở ra với 1 mô hình trống. Bây giờ chúng ta sẽ tiếp hành xây dựng mô hình bằng cách thêm mới các thực thể (entity), thuộc tính và các mối quan hệ giữa các thực hiện trong mô hình.

Rê chuột vào vùng trống, chuột phải chọn Properties. Trong cửa sổ Properties, chúng ta có thể thay đổi tên thuộc tính “Entity Container Name” với giá trị là DammioModelContainer thành BloggingContext hay bất cứ tên nào bạn muốn. Đây là tên context kế thừa từ lớp DbContext sẽ được tự động gieo mã nguồn, context thể hiện 1 phiên làm việc với database, cho phép chúng ta truy vấn và lưu trữ dữ liệu.

Tiếp đến, chúng ta tạo 1 thực thể bằng cách chuột phải lên vùng trống, chọn Add New -> Entity… Đặt tên thực thể là BlogBlogId là khóa chính, sau đó nhấn OK.

Có thể bạn quan tâm: Những điều thú vị về Tenseigan – đôi mắt quyền lực nhất nhẫn giới trên mặt Trăng

Để tạo thêm thuộc tính cho thực thể Blog, chọn thực thể này, chuột phải chọn Add New -> Scalar Property, điền Name là tên thuộc tính.

Chuột phải lên thuộc tính Name, chọn Properties, lúc này chúng ta sẽ có được cửa số Properties cho thuộc tính Name.

Trong cửa sổ Properties của thuộc tính Name, chúng ta có các mục chính sau:

  • Default Value: là giá trị mặc định của thuộc tính, đặt (None) nghĩa là không có giá trị mặc định
  • Entity Key: đặt khóa của thực thể (True/False)
  • Fixed Length: chiều dài cố định của thuộc tính (True/False)
  • Getter/Setter: phạm vi truy cập của 2 thuộc tính Getter/Setter (Public, Protected, Private, Internal)
  • Max Length: chiều dài tối đa
  • Name: tên thuộc tính
  • Nullable: cho phép thuộc tính có dữ liệu null hay không (None/True/False)
  • Type: kiểu dữ liệu của thuộc tính
XEM THÊM:  Bạn sinh năm 1987 tuổi đinh mão nên kinh doanh gì hiện nay?

Chúng ta lặp lại các bước trên cho thuộc tính Url, chuột phải lên thuộc tính Url chọn Properties, đặt thuộc tính NullableTrue để cho phép thêm 1 Blog mới mà không cần phải mô tả giá trị Url.

Chúng ta tạo thêm thực thể Post với PostId là khóa chính và 2 thuộc tính là Title và Content.

Đến đây, chúng ta phải tạo thêm mối quan hệ giữa các bảng trong mô hình. Chuột phải là vùng trống giao diện, chọn Add New -> Association… Khi đó chúng ta sẽ thấy sự xuất hiện của mối quan hệ giữa 2 thực thể vừa tạo.

Diễn giải quan hệ là 1 Blog chứa nhiều Post và 1 Post chỉ thuộc về 1 Blog. Mối quan hệ giữa Blog và Post là 1 (One)* (Many). Chúng ta có thêm 2 thuộc tính điều hướng đó là: Posts và Blog. Hai thuộc tính này giúp lấy được giá trị của thực thể Blog và Post mà không cần truy xuất trực tiếp các thực thể này. Thêm khóa ngoại vào thực thể Post và nhấn dấu check, sau đó nhấn OK để tạo mối quan hệ.

Sau khi tạo xong mối quan hệ, chúng ta có sơ đồ hoàn chỉnh cho ví dụ đơn giản như sau.

Có thể bạn quan tâm: Gỗ Sơn Huyết Quý Hiếm, Có Tiền Chắc Gì Đã Mua Được!

3. Gieo cơ sở dữ liệu Với mô hình cho trước, Entity Framework có thể tính 1 lược đồ database cho phép chúng ta lưu trữ và rút trích dữ liệu bằng mô hình. Tùy theo phiên bản Visual Studio, bạn sẽ tạo database ở những nơi khác nhau.

  • Nếu bạn xài VS 2010, bạn sẽ tạo 1 SQL Express database
  • Nếu bạn xài VS 2012, bạn sẽ tạo 1 LocalDb database.

Tiếp theo, để gieo database, chọn chuột phải lên vùng trống, chọn Generate Database from Model… Chọn New Connection… và đặc tả hệ cơ sở dữ liệu như LocalDb ((localdb)v11.0) hoặc SQL Express (.SQLEXPRESS) hay bất cứ hệ cơ sở dữ liệu nào bạn muốn để gieo mô hình. Sau đó, điền tên onlineaz.vnging là tên cơ sở dữ liệu và nhấn OK.

Tiếp đến bạn chọn phiên bản Entity Framework 6.x và nhấn Next, Finish để gieo database. Nếu database chưa được gieo, các bạn chạy tập tin onlineaz.vn và nhấn nút Execute (Ctrl + Shift + E) để gieo database nhé.

4. Đọc và ghi dữ liệu Đến đây, chúng ta sẽ tạo 1 số đoạn mã để tương tác với database thông qua các lớp được gieo dựa trên tập tin EDMX như hình sau.

XEM THÊM:  Tiếng Anh chuyên ngành nhân sự

Sau đó chúng ta thêm đoạn mã sau ở tập tin onlineaz.vn.

using System; using onlineaz.vnric; using onlineaz.vn; using onlineaz.vn; using onlineaz.vns; namespace DammioModelFirst { class Program { static void Main(string[] args) { using (var db = new BloggingContext()) { // Tạo và lưu tên 1 blog mới – onlineaz.vn onlineaz.vne(“Nhap ten cho 1 blog moi: “); var name = onlineaz.vnLine(); var blog = new Blog { Name = name }; onlineaz.vn(blog); db.SaveChanges(); // Hiển thị tất cả các blog trong database var query = from b in db.Blogs orderby b.Name select b; onlineaz.vneLine(“Danh sach cac blog:”); foreach (var item in query) { onlineaz.vneLine(item.Name); } onlineaz.vneLine(“Nhan bat ky nut nao de thoat…”); onlineaz.vnKey(); } } } }

Sau khi thực thi, một số blog được thêm như sau.

5. Quản lý các thay đổi mô hình Phần này giúp chúng ta quản lý việc thay đổi trên mô hình. Khi mô hình thay đổi, chúng ta cần phải cập nhật lược đồ database và cũng như gieo lại các lớp code. Thêm 1 thực thể User với Username là khóa với kiểu chuỗi (String). Chuột phải vào thuộc tính Username, chọn Properties. Trong cửa sổ Properties, chọn MaxLength là 50 để cho phép thuộc tính Username có chiều dài là 50.

Sau đó thêm thuộc tính DisplayName kiểu String vào thực thể User.

Sau khi thay đổi mô hình bằng cách thêm mới 1 thực thể User, chúng ta sẽ tiến hành cập database và gieo lại mã nguồn. Chuột phải vào vùng trống ở giao diện tập tin EDMX, chọn Generate Database from Model…, Entity Framework sẽ gieo 1 đoạn script để tạo lại lược đồ dựa trên mô hình được cập nhật. Sau đó chọn Finish.

Nếu bạn nhận 1 vài cảnh báo về việc ghi đề lên DDL script và ánh xạ, lưu trữ các phần mô hình, hãy cứ nhấn Yes. Sau đó tập tin onlineaz.vn được gieo lại, bạn nhấn Execute (Ctrl + Shift + E) để gieo mô hình.

Ok vậy là xong phần database, phần mã nguồn bạn chỉ cần lưu tập tin EDMX lại là Visual Studio tự gieo thêm lớp onlineaz.vn.

Kết luận: Trong bài này, bạn đã học cách phát triển ứng dụng phần mềm thông qua phương pháp tiếp cận Model First với việc tạo ra 1 mô hình bằng EF Designer, sau đó gieo database và gieo mã nguồn cho dự án phần mềm cũng như cách cập nhật mô hình. Mọi thắc mắc về bài này, xin comment dưới đây các bạn nhé.

Có thể bạn quan tâm: Ảnh Đại Diện Cho Facebook Dễ Thương

<< Bài trước Trang mục lục Bài tiếp theo >>

Vậy là đến đây bài viết về [Entity Framework] Phần 5: Tạo mô hình trước (Model First) đã dừng lại rồi. Hy vọng bạn luôn theo dõi và đọc những bài viết hay của chúng tôi trên website Onlineaz.vn

Chúc các bạn luôn gặt hái nhiều thành công trong cuộc sống!

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button