Sử dụng Entity Framework Core trong Console Application

 

Cài đặt Visual Studio 2019

Để thực hiện theo bài viết này bạn cần cài đặt Visual Studio 2019.
Tải về Visual Studio 2019

Tạo project

Mở Visual Studio 2019. Nhấn Create a new project. Nếu Visual Studio của bạn đang mở click File -> New -> Project để mở trình tạo dự án mới.


Trong trình tạo dự án mới, chúng ta chọn Console từ khung lọc phía trên và chọn Console App (.Net Core). Sau đó bấm Next để tiếp tục.


Trong phần tùy chỉnh dự án mới, nhập tên dự án và chọn Create để tạo dự án mới.


Cài đặt các gói thư viện EF Core

Tiếp theo chúng ta cần cài đặt thư viện Microsoft.EntityFrameworkCore.
Ở đây chúng ta đang thao tác với cơ sở dữ liệu SQL Server nên chúng ta sẽ cần cài đặt thêm thư viện Microsoft.EntityFrameworkCore.SqlServer. Có các thư viện khác nhau cho các nhà cung cấp cơ sở dữ liệu khác nhau ví dụ đối với SQLite chúng ta sẽ cài đặt Microsoft.EntityFrameworkCore.Sqlite. Khi cài đặt thư viện cơ sở dữ liệu nó sẽ tự động cài đặt Microsoft.EntityFrameworkCore.
Chúng ta sẽ sử dụng NuGet Package Manager để cài đặt các gói thư viện.

Chọn Tools -> NuGet Package Manager -> Manage NuGet Package for Solution.


Sau đó chọn tab Browser -> Nhập Microsoft.EntityFrameworkCore.SqlServer vào ô tìm kiếm và nhấn Enter. Chọn Microsoft.EntityFrameworkCore.SqlServer. Ở cửa sổ bên phải chọn project EFCore sau đó bấm Install. Khi cửa sổ thông báo hiện lên chọn I Accept.


Cài đặt các công cụ EF Core

Gói công cụ Entity Framework Core Tools chứa các dòng mã CLI (command-line interface) dùng để thao tác với việc chuyển dữ liệu tập lệnh (migration) và tạo mã cho model dựa trên cơ sở dữ liệu đang dùng.
Để cài đặt chúng ta mở lại cửa sổ Manage NuGet Package for Solution và tìm kiếm Microsoft.EntityFrameworkCore.Tools.

Mô hình hóa cơ sở dữ liệu

EF Core thực hiệ việc truy cập dữ liệu bằng mô hình. Một mô hình chỉ đơn giản là một POCO class. Ở đâu chung ta gọi nó là entity class.
EF Core sẽ ánh xạ các entity class này bào bảng trong cơ sở dữ liệu.

Bây giờ chúng ta sẽ tạo một entity class tên Product
  1. Nhấp chuột phải vào thư mục Solution và tạo thư mục Models.
  2. Trong thư mục Models tạo class Product.



  3. Đổi class Product thành public class Product, sau đó thêm hai thuộc tính Id và Name như sau:



DBContex class

DBContext class là lớp quản lý entity class hoặc models. Nó là phần quan trọng nhất của EF Core. DBContext chịu trách nhiệm kết nối với cơ sở dữ liệu, truy vấn, cập nhật cơ sở dữ liệu và lưu thông tin cấu hình cơ sở dữ liệu,...

Tạo Context class bằng cách inherit từ DBContext.
Trong thư mục Models tạo class EFContext và thêm đoạn mã sau:


Trong đó:
  • Dòng thứ 6 class EFContext kế thừa từ class DBContext.
  • Dòng thứ 9 tạo một chuỗi và gán giá trị là đường dẫn đến cơ sở dữ liệu chúng ta gọi là connection string.
  • Ở dòng 11 chúng ta có method OnConfiguring method này cho phép chúng ta cấu hình DBContext. EF Core gọi method này khi nó khởi tạo lần đầu tiên.
    method OnConfiguring instance từ DbContextOptionsBuilder như là đối số của nó. DbContextOptionsBuilder cung cấp API để cấu hình DBContext.
  • Bên trong method OnConfiguring chúng ta gọi method UseSQLServer method này được cung cấp bởi gói Microsoft.EntityFrameWorkCore.SqlServer. method UseSQLServer đặt SQL Server như là nhà cung cấp cơ sở dữ liệu. Đối số đầu tiên của method UseSQLServer là connection string để sử dụng (dòng 13).
  • Dòng 16 chúng ta tạo ra DbSet property cho mỗi model trong context class bởi vì việc tạo model là chưa đủ để ánh xạ nó với cơ sở dữ liệu và EF Core chỉ bao gồm những loại có thuộc tính DbSet trong model.
    DbSet cung cấp các phương pháp như Add, Attach, Remove,... trên các Entity. Context class ánh xạ các hoạt động này thành một truy vấn SQL và chạy nó trên cơ sở dữ liệu bằng cách sử dụng trình cung cấp cơ sở dữ liệu.

Tạo cơ sở dữ liệu

Bây giờ mô hình của chúng ta đã sẵn sàng. Trong EF Core chúng ta sẽ dùng Migrations để tạo cơ sở dữ liệu.

Add-Migration

Nhấp vào Tools -> NuGet Package Manager Console để mở cửa sổ Console.


Nhập mã Add-Migration để tạo Migration.


Add-Migration tạo ra các cấu trúc để tạo ra lệnh SQL để cập nhật cơ sở dữ liệu bên dưới cho phù hợp với model. Bạn có thể thấy rằng ba tệp mới được tạo trong thư mục Migrations.

Tạo cơ sở dữ liệu

Bước tiếp theo là tạo cơ sở dữ liệu bằng Migrations đã tạo trước đó.

Mở NuGet Package Manager Console và chạy lệnh Update-Database.
Update-Database sử dụng migrations để tạo các truy vấn SQL. Nếu cơ sở dự liệu không tồn tại nó sẽ tạo ra một cơ sở dữ liệu mới sử dụng connector string 


Cơ sở dữ liệu

  1. Bấm vào tab View -> SQL Server Object Explorer để mở SQL Server Object Explorer.
  2. Chuyển đến (localDB)\mssqllocaldb
  3. bạn sẽ thấy cơ sở dữ liệu EFCore đã được tạo như hình dưới:



Nhận xét

Bài đăng phổ biến

Khởi tạo một Laravel project hoàn chỉnh

Kết nối và thao tác với cơ sở dữ liệu trong Laravel

Eloquent ORM trong Laravel