Entity Framework là gì ?
Entity Framework là một ORM mã nguồn mở dành cho các ứng dụng .NET được Microsoft hỗ trợ. Nó cho phép các dev làm việc với dữ liệu bằng cách sử dụng các đối tượng. Khi đó, chúng ta sẽ không cần tập trung vào các bảng và cột trong cơ sở dữ liệu.
Với Entity Framework, các dev có thể làm việc ở mức độ trừu tượng cao hơn. EF có thể tạo và duy trì với ít code hơn so với các ứng dụng truyền thống.
Entity Framework có thể làm những gì ?
Giống như các ORM khác, Entity Framework có khả năng ánh xạ các lớp (thực thể) vào cơ sở dữ liệu, dịch và thực thi các truy vấn LINQ sang SQL, theo dõi các thay đổi xảy ra trên các thực thể trong suốt vòng đời của chúng và lưu các thay đổi vào cơ sở dữ liệu.
CODE-FIRST là gì ?
Trong bài viết này, chúng ta sẽ chỉ tìm hiểu về Code-First Approach trong Entity Framework.
Hiểu đơn giản cách tiếp cận “Code First” cho phép xây dựng cấu trúc dữ liệu từ các lớp. Entity Framework Code-First sẽ giúp bạn thực hiện tất cả các công đoạn khác, từ tạo cơ sở dữ liệu, tạo bảng, truy vấn dữ liệu.
Entity Framework hoạt động như thế nào ?
Dưới đây là sơ đồ thể hiện workflow của Entity Framework.
- Trước hết, bạn cần xác định mô hình của mình. Việc xác định mô hình bao gồm xác định các lớp miền của bạn, lớp ngữ cảnh bắt nguồn từ DbContext và các cấu hình (nếu có). EF sẽ thực hiện các thao tác CRUD dựa trên mô hình của bạn.
- Để chèn dữ liệu, hãy thêm đối tượng miền vào ngữ cảnh và gọi phương thức SaveChanges(). API EF sẽ xây dựng lệnh INSERT thích hợp và thực thi lệnh đó vào cơ sở dữ liệu.
- Để đọc dữ liệu, hãy thực hiện truy vấn LINQ-to-Entities bằng ngôn ngữ ưa thích của bạn (C#/VB.NET). API EF sẽ chuyển đổi truy vấn này thành truy vấn SQL cho cơ sở dữ liệu quan hệ cơ bản và thực thi nó. Kết quả sẽ được chuyển thành các đối tượng miền (thực thể) và hiển thị trên UI.
- Để chỉnh sửa hoặc xóa dữ liệu, hãy cập nhật hoặc xóa đối tượng thực thể khỏi ngữ cảnh và gọi phương thức SaveChanges(). API EF sẽ xây dựng lệnh UPDATE hoặc DELETE thích hợp và thực thi nó vào cơ sở dữ liệu.
MIGRATION là gì ?
Tính năng MIGRATION trong EF Core cung cấp một cách để từng bước thay đổi cấu trúc cơ sở dữ liệu để giữ cho nó đồng bộ với mô hình dữ liệu của ứng dụng trong khi vẫn bảo toàn dữ liệu hiện có trong cơ sở dữ liệu. EF core còn cho phép lưu lại lịch sử thay đổi CSDL để ta có thể dễ dàng revert về các trạng thái CSDL trước.
DbContext là gì ?
DbContext là lớp quan trọng nhất khi làm việc với EF hoặc EF Core. Nó đại diện cho một phiên làm việc với cơ sở dữ liệu mà bạn có thể thực hiện các thao tác CRUD (Tạo, Đọc, Cập nhật, Xóa).
Mỗi instance của DbContext tuân theo pattern Unit Of Work và Repository, mà ở đó ta có thể kết hợp nhiều thay đổi tới CSDL trong một giao dịch (transaction) cơ sở dữ liệu duy nhất.
DbContext được sử dụng để truy vấn hoặc lưu dữ liệu vào cơ sở dữ liệu. Nó có khả năng định nghĩa quan hệ giữa các lớp Entity, ánh xạ đến cơ sở dữ liệu, theo dõi thay đổi của các Entity, và lưu bộ nhớ đệm.
Lời kết
Entity Framework, giống các ORM khác, mang lại sự tiện lợi khi làm việc với cơ sở dữ liệu. Tuy nhiên, chúng ta cần hiểu rõ cơ chế Migration của Entity Framework để đảm bảo không xảy ra xung đột giữa các lần thay đổi hoặc revert cấu trúc CSDL.
ORM ưa thích của bạn là gì ? Chúng có những điểm gì khác biệt và nổi trội hơn Entity Framework ? Hãy cùng thảo luận dưới mục bình luận nhé!
Nguồn
- https://www.entityframeworktutorial.net
- Open talk NCC HN3