Entity Framework cung cấp ba cách tiếp cận để tạo ra một mô hình thực thể và mỗi phương pháp đều có ưu và nhược điểm riêng.
Nếu bạn chưa tìm hiểu về mô hình dữ liệu thực thể trong Entity Framework thì có thể xem tại đây:
Trong phần này chúng ta sẽ tìm hiểu về cách sử dụng Code First để tạo mô hình dữ liệu thực thể trong Entity Framework.
Một số nhà phát triển thích làm việc với Designer trong khi những người khác chỉ muốn làm việc với code của họ. Đối với những nhà phát triển này, Entity Framework có một quy trình mô hình hóa được gọi là Code First dành cho họ.
Trong phần này, chúng ta hãy tìm hiểu cách tạo mô hình dữ liệu thực thể trong trình thiết kế bằng cách sử dụng Model First.
Sau đây là một ví dụ đơn giản về việc tạo một dự án Console mới bằng cách sử dụng phương pháp Model First.
Bước 1 - Mở Visual Studio và chọn File → New → Project
Bước 2 - Chọn Installed → Templates → Visual C# → Windows từ khung bên trái và sau đó ở ngăn giữa, chọn Console Application.
Bước 3 - Đặt tên dự án là EFModelFirstDemo.
Bước 4 - Để tạo mô hình, trước tiên bạn nhấp chuột phải vào dự án và chọn Add → New Items…
Hộp thoại Add New Item sẽ mở ra như dưới đây.
Bước 5 - Chọn ADO.NET Entity Data Model từ ngăn giữa và đặt tên ModelFirstDemoDB.
Bước 6 - Nhấp vào nút Add sẽ khởi chạy hộp thoại Entity Data Model Wizard.
Bước 7 - Chọn mô hình Empty EF Designer và nhấp vào nút Next. Entity Framework Designer 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.
Bước 8 - Nhấp chuột phải vào giao diện thiết kế và chọn Properties. Trong cửa sổ Properties, thay đổi Entity Container Name thành ModelFirstDemoDBContext.
Bước 9 - Nhấp chuột phải vào giao diện thiết kế và chọn Add New → Entity…
Hộp thoại Add Entity sẽ mở như trong hình sau.
Bước 10 - Nhập Student dưới dạng tên thực thể và StudentId làm tên thuộc tính và nhấn Ok.
Bước 11 - Nhấp chuột phải vào thực thể mới trên giao diện thiết kế và chọn Add New → Scalar Property, nhập Name làm tên của thuộc tính.
Bước 12 - Nhập FirstName và sau đó thêm hai thuộc tính vô hướng khác như LastName và EnrollmentDate.
Bước 13 - Thêm hai thực thể Course và Enrollment bằng cách làm theo tất cả các bước được đề cập ở trên và cũng thêm một số thuộc tính vô hướng như được hiển thị trong các bước sau.
Bước 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.
Bước 15 - Nhấp chuột phải vào giao diện thiết kế và chọn Add New → Association…
Bước 16 - Tạo mối quan hệ giữa Student và Enrollment.
Bước 17 - Điều này có nghĩa là một Student có nhiều Enrollment và một Enrollment thuộc về một Student.
Bước 18 - Đừng quên đánh dấu vào ô Add foreign key properties to 'Enrollment' Entity và bấm OK.
Bước 19 - Tương tự, thêm một liên kết giữa Course và Enrollment.
Bước 20 - Mô hình dữ liệu của bạn sẽ trông giống như hình dưới đây sau khi thêm 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. Bây giờ chúng ta sẽ tiếp tục tạo cơ sở dữ liệu.
Bước 1 - Nhấp chuột phải vào giao diện thiết kế và chọn Generate Database from Model…
Bước 2 - Bạn có thể chọn cơ sở dữ liệu có sẵn hoặc tạo kết nối mới bằng cách nhấp vào New Connection…
Bước 3 - Để tạo Cơ sở dữ liệu mới, nhấp vào New Connection…
Bước 4 - Nhập tên máy chủ và tên cơ sở dữ liệu.
Bước 5 - Nhấn Next.
Bước 6 - Nhấp vào Finish. Việc này sẽ thêm file *.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 Execute.
Bước 7 - Hộp thoại sau sẽ được hiển thị để kết nối với cơ sở dữ liệu.
Bước 8 - Khi thực hiện thành công, bạn sẽ thấy thông báo sau.
Bước 9 - Chuyển đến 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 tạo mã model sử dụng DbContext API.
Bước 1 - Nhấp chuột phải vào một vị trí trống trong mô hình của bạn trong Trình thiết kế EF và chọn Add Code Generation Item…
Bạn sẽ thấy hộp thoại Add New Item sau đây mở ra.
Bước 2 - Chọn EF 6.x DbContext Generator ở khung giữa và đặt tên là ModelFirstDemoModel
.
Bước 3 - Bạn sẽ thấy ModelFirstDemoModel.Context.tt
và ModelFirstDemoModel.tt
được tạo trong Solution Explorer.
ModelFirstDemoModel.Context
tạo DbCcontext
và các thực thể Student, Course và Enrollment.
Đoạn mã C# dưới đây sẽ thêm và truy xuất thông tin Student 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 đầu ra 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
Trong phần này, chúng ta hãy tìm hiểu về việc tạo một mô hình dữ liệu thực thể với cách tiếp cận Database First.
Hãy lấy một ví dụ đơn giản. Chúng tôi đã có một cơ sở dữ liệu chứa 3 bảng như trong hình dưới đây.
Bước 1 - Hãy tạo một dự án Console mới với tên DatabaseFirstDemo.
Bước 2 - Để tạo mô hình, trước tiên, nhấp chuột phải vào dự án của bạn trong Solution Explorer và chọn Add → New Items ...
Bước 3 - Chọn ADO.NET Entity Data Model từ ngăn giữa và đặt tên là DatabaseFirstModel.
Bước 4 - Nhấp vào nút Add sẽ khởi chạy hộp thoại Entity Data Model Wizard.
Bước 5 - Chọn EF Designer từ cơ sở dữ liệu và nhấp vào nút Next.
Bước 6 - Chọn cơ sở dữ liệu hiện có và nhấp vào Next.
Bước 7 - Chọn Entity Framework 6.x và nhấn Next.
Bước 8 - Chọn tất cả các tables, views và stored procedures bạn muốn đưa vào và nhấp vào Finish.
Bạn sẽ thấy mô hình thực thể và các lớp POCO được tạo từ cơ sở dữ liệu.
Bây giờ chúng ta lấy tất cả các sinh viên từ cơ sở dữ liệu bằng cách viết đoạn mã sau vào file program.cs
.
using System;
using System.Linq;
namespace DatabaseFirstDemo
{
class Program
{
static void Main(string[] args)
{
using (var db = new UniContextEntities())
{
var query = from b in db.Students
orderby b.FirstMidName
select b;
Console.WriteLine("All All student in the database:");
foreach (var item in query)
{
Console.WriteLine(item.FirstMidName +" "+ item.LastName);
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
}
Khi chương trình trên được thực thi, bạn sẽ nhận được đầu ra sau
All student in the database:
Ali Khan
Arturo finand
Bill Gates
Carson Alexander
Gytis Barzdukas
Laura Norman
Meredith Alonso
Nino Olivetto
Peggy Justice
Yan Li
Press any key to exit...
Khi chương trình trên được thực thi, bạn sẽ thấy tất cả tên của sinh viên đã được nhập trước đó trong cơ sở dữ liệu.
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.
Trong phần này, chúng ta sẽ xem xét nên sử dụng Code First, Model First hay Database First để tạo mô hình dữ liệu. Sau đây là một số hướng dẫn sẽ giúp bạn quyết định nên chọn cái nào.
Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.
2 kịch bản lưu dữ liệu trong Entity Framework Core là kịch bản được kết nối và kịch bản ngắt kết nối.
Tạo ứng dụng .NET Core Console đầu tiên và cấu hình sử dụng Entity Framework Core.
Truy vấn trong Entity Framework Core có gì mới? Truy vấn trong EF Core khác EF ở những điểm nào.
Entity Framework Core toàn tập sẽ hướng dẫn bạn tất cả mọi thứ về Entity Framework Core.