Entity Framework trong .NET Core

Posted by

Tổng quan Entity Framework Core (EF Core)

EF Core được sử dụng khá phổ biến trong các ứng dụng .NET Core. EF giúp lập trình viên đơn giản hóa thao tác với cơ sở dữ liệu bằng công nghệ ORM (Object-Relational Mapping).

EF Core dùng phổ biến trong các ứng dụng Server ASP.NET Core, ngoài ra EF Core có thể dùng được nhiều các ứng dụng khác như Winform, WPF, … . Cách sử dụng tương tự ASP.NET Core

Các bước làm việc với EF Core

  • Tạo Database context file
  • Khai báo Database context trong file Program.cs
  • Tạo bảng: định nghĩa class. Mỗi bảng tương ứng với 1 class
  • Khai báo class trong Database Context file
  • Tạo migration file
  • Migrate data

Một số chú ý, quy ước quan trọng

  • Mỗi một bảng thường có trường Id (kiểu int hoăc string), mặc định là primary key.
  • Nếu ClassB có liên hệ với ClassA bằng foreign key, thì trong ClassB thường sẽ định nghĩa 1 trường ClassAId có kiểu dữ liệu giống với Id của ClassA
  • Sử dụng kiểu nullable cho các trường có thể null trong database: Ví dụ string? Address thì Address có thể có giá trị null trong database, còn nếu string Address thì Address không thể có giá trị null.

Ví dụ quản lý thú cưng

Tạo database context file

  • Tạo file kế thừa từ class DBContext (ở đây IdentityDbContext<CustomUser> cũng kế thừa từ DBContext)

Khai báo sử dụng DBContext trong Program.cs

Định nghĩa class Pet:

  • gồm Id, Name, DateOfBirth (nullable), PetType

Khai báo Pet trong Database Context file

Tạo Migration file

  • Mở termial hoặc cmd tại thư mục cùng với Project
  • dotnet ef migrations add AddPetTable
  • Chú ý: AddPetTable có thể là tên file bất kỳ

Migrate data

  • dotnet ef database update
  • Check lại bảng được tạo trong database
  • Như vậy bảng Pets đã được tạo trong database

Tổng kết

Như vậy bài viết này đã giới thiệu tổng quan và các bước làm việc với EF core. Giúp công việc của lập trình viên được đơn giản và hiệu quả hơn rất nhiều.

Bài viết tiếp chúng ta sẽ tìm hiểu cách sử dụng EF core để query data cho API

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *