Khung thực thể - Phương pháp tiếp cận đầu tiên của mô hình
Trong chương này, chúng ta hãy tìm hiểu cách tạo một mô hình dữ liệu thực thể trong trình thiết kế bằng cách sử dụng quy trình làm việc được gọi là Model First.
Model First rất phù hợp khi bạn bắt đầu một dự án mới mà cơ sở dữ liệu chưa tồn tại.
Mô hình được lưu trữ trong tệp EDMX và có thể được xem và chỉnh sửa trong Trình thiết kế khung thực thể.
Trong Model First, bạn xác định mô hình của mình trong trình thiết kế Entity Framework, sau đó tạo SQL, thao tác này sẽ tạo lược đồ cơ sở dữ liệu để khớp với mô hình của bạn và sau đó bạn thực thi SQL để tạo lược đồ trong cơ sở dữ liệu của mình.
Các lớp mà bạn tương tác trong ứng dụng của mình được tạo tự động từ tệp EDMX.
Sau đây là một ví dụ đơn giản về việc tạo một dự án bảng điều khiển mới bằng cách sử dụng cách tiếp cận Model First.
Step 1 - Mở Visual Studio và chọn Tệp → Mới → Dự án
Step 2 - Chọn Đã cài đặt → Mẫu → Visual C # → Windows từ ngăn bên trái, sau đó ở ngăn giữa, chọn Ứng dụng bảng điều khiển.
Step 3 - Nhập EFModelFirstDemo vào trường Tên.
Step 4 - Để tạo mô hình, đầu tiên nhấp chuột phải vào dự án bảng điều khiển của bạn trong trình khám phá giải pháp và chọn Thêm → Mục mới…
Hộp thoại sau sẽ mở ra.
Step 5 - Chọn ADO.NET Entity Data Model từ khung giữa và nhập tên ModelFirstDemoDB vào trường Name.
Step 6 - Nhấp vào nút Thêm sẽ khởi chạy hộp thoại Trình hướng dẫn mô hình dữ liệu thực thể.
Step 7- Chọn mô hình Empty EF Designer và nhấp vào nút Next. Trình thiết kế khung thực thể mở ra với một mô hình trống. Bây giờ chúng ta có thể bắt đầu thêm các thực thể, thuộc tính và liên kết vào mô hình.
Step 8- Nhấp chuột phải vào bề mặt thiết kế và chọn Properties. Trong cửa sổ Thuộc tính, thay đổi Tên vùng chứa thực thể thành ModelFirstDemoDBContext.
Step 9 - Nhấp chuột phải vào bề mặt thiết kế và chọn Thêm mới → Thực thể…
Hộp thoại Thêm Thực thể sẽ mở ra như trong hình sau.
Step 10 - Nhập Sinh viên làm tên thực thể và Id Sinh viên làm tên thuộc tính và nhấp Ok.
Step 11 - Nhấp chuột phải vào thực thể mới trên bề mặt thiết kế và chọn Add New → Scalar Property, nhập Name là tên của thuộc tính.
Step 12 - Nhập FirstName và sau đó thêm hai thuộc tính vô hướng khác như LastName và EnrollmentDate.
Step 13 - Thêm hai Entities Course và Enrollment nữa bằng cách làm theo tất cả các bước nêu trên và cũng thêm một số thuộc tính Scalar như trong các bước sau.
Step 14 - Chúng tôi có ba thực thể trong Visual Designer, hãy thêm một số liên kết hoặc mối quan hệ giữa chúng.
Step 15 - Nhấp chuột phải vào bề mặt thiết kế và chọn Thêm mới → Liên kết…
Step 16 - Tạo một điểm cuối của mối quan hệ tới Sinh viên với bội số của một và điểm cuối còn lại là Điểm đăng ký với bội số.
Step 17 - Điều này có nghĩa là một Học sinh có nhiều Ghi danh và Ghi danh thuộc về một Học sinh.
Step 18 - Đảm bảo hộp Thêm thuộc tính khóa ngoại vào Thực thể 'Đăng' được chọn và nhấp vào OK.
Step 19 - Tương tự, thêm một liên kết nữa giữa Khóa học và Ghi danh.
Step 20 - Mô hình dữ liệu của bạn sẽ giống như màn hình sau đây sau khi thêm các liên kết giữa các thực thể.
Bây giờ chúng ta có một mô hình đơn giản mà chúng ta có thể tạo cơ sở dữ liệu từ đó và sử dụng để đọc và ghi dữ liệu. Hãy tiếp tục và tạo cơ sở dữ liệu.
Step 1 - Nhấp chuột phải vào bề mặt thiết kế và chọn Tạo cơ sở dữ liệu từ Mô hình…
Step 2 - Bạn có thể chọn cơ sở dữ liệu hiện có hoặc tạo kết nối mới bằng cách nhấp vào Kết nối mới…
Step 3 - Để tạo Cơ sở dữ liệu mới, nhấp vào Kết nối Mới…
Step 4 - Nhập Tên máy chủ và tên cơ sở dữ liệu.
Step 5 - Nhấp vào Tiếp theo.
Step 6- Nhấp vào Kết thúc. Điều này sẽ thêm tệp * .edmx.sql trong dự án. Bạn có thể thực thi các tập lệnh DDL trong Visual Studio bằng cách mở tệp .sql, sau đó nhấp chuột phải và chọn Thực thi.
Step 7 - Hộp thoại sau sẽ được hiển thị để kết nối với cơ sở dữ liệu.
Step 8 - Khi thực hiện thành công, bạn sẽ thấy thông báo sau.
Step 9 - Vào server explorer, bạn sẽ thấy cơ sở dữ liệu được tạo với ba bảng được chỉ định.
Tiếp theo, chúng ta cần hoán đổi mô hình của mình để tạo mã sử dụng API DbContext.
Step 1 - Nhấp chuột phải vào vị trí trống của mô hình của bạn trong EF Designer và chọn Thêm mục tạo mã…
Bạn sẽ thấy rằng hộp thoại Thêm mục mới sau đây sẽ mở ra.
Step 2 - Chọn EF 6.x DbContext Generator ở khung giữa và nhập ModelFirstDemoModel vào trường Tên.
Step 3 - Bạn sẽ thấy trong trình khám phá giải pháp của mình có các mẫu ModelFirstDemoModel.Context.tt và ModelFirstDemoModel.tt được tạo.
ModelFirstDemoModel.Context tạo DbCcontext và các tập đối tượng mà bạn có thể trả về và sử dụng để truy vấn, chẳng hạn như cho ngữ cảnh, Sinh viên và Khóa học, v.v.
Mẫu khác đề cập đến tất cả các loại Sinh viên, Khóa học, v.v. Sau đây là lớp Sinh viên, được tạo tự động từ Mô hình thực thể.
Sau đây là mã C # trong đó một số dữ liệu được nhập và truy xuất từ cơ sở dữ liệu.
using System;
using System.Linq;
namespace EFModelFirstDemo {
class Program {
static void Main(string[] args) {
using (var db = new ModelFirstDemoDBContext()) {
// Create and save a new Student
Console.Write("Enter a name for a new Student: ");
var firstName = Console.ReadLine();
var student = new Student {
StudentID = 1,
FirstName = firstName
};
db.Students.Add(student);
db.SaveChanges();
var query = from b in db.Students
orderby b.FirstName select b;
Console.WriteLine("All student in the database:");
foreach (var item in query) {
Console.WriteLine(item.FirstName);
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
}
Khi đoạn mã trên được thực thi, bạn sẽ nhận được kết quả sau:
Enter a name for a new Student:
Ali Khan
All student in the database:
Ali Khan
Press any key to exit...
Chúng tôi khuyên bạn nên thực hiện ví dụ trên theo cách từng bước để hiểu rõ hơn.