Entity framework là gì? Khi nào sử dụng entity framework – 2021

Mã hóa và quản lý để truy cập dữ liệu bằng mã ADO .Net là công việc tẻ nhạt và buồn tẻ. Do đó, Microsoft cung cấp một khung công tác O / RM được gọi là “Entity Framework” để tự động hóa các hoạt động liên quan đến cơ sở dữ liệu nhằm giúp bạn xây dựng ứng dụng dễ dàng hơn. Vậy Entity Framework là gì? Bạn hãy cùng giaidap247 tìm hiểu Entity Framework là gì nhé?

Entity Framework là gì?

Entity Framework được sinh ra để hỗ trợ tương tác giữa các ứng dụng dựa trên .NET và cơ sở dữ liệu quan hệ. Ngoài ra, Entity Framework là một công cụ giúp ánh xạ các đối tượng trong ứng dụng và phần mềm với các bảng trong cơ sở dữ liệu quan hệ.

entity framework
entity framework

Hay một định nghĩa khác về Entity Framework:

Entity Framework là một khung ORM (Object Relational Mapper) mã nguồn mở dành cho các ứng dụng .NET do Microsoft cung cấp. là một phần của .NET Framework. là một khung ORM mã nguồn mở.

Lưu ý: ORM là một công cụ tự động tạo các đối tượng trong ứng dụng từ các bảng, dạng xem và các thủ tục được lưu trữ của cơ sở dữ liệu quan hệ.

Emntity Framework giúp các nhà phát triển web tương tác với dữ liệu quan hệ theo hướng đối tượng với ít mã hơn các ứng dụng truyền thống. Lợi ích lớn nhất của nó là giúp các lập trình viên giảm số lượng mã cần thiết để truy cập và tương tác với cơ sở dữ liệu.

Hiện tại, Entity framework là một khung phát triển ứng dụng web mạnh mẽ được hỗ trợ bởi một cộng đồng lớn.

Lịch sử ra đời

Entity Framework được phát hành vào năm 2008. Nhờ sự ra đời của nó, việc truy vấn cơ sở dữ liệu quan hệ đã trở nên đơn giản và dễ học, giúp giảm đáng kể thời gian phát triển dự án.

Lịch sử phiên bản EF 6

EF 6 2013 .NET 4.0 & .NET 4.5, VS 2012
EF 5 2012 .NET 4.0, VS 2012
EF 4.3 2011 .NET 4.0, VS 2012
EF 4.0 2010 .NET 4.0, VS 2010
EF 1.0 (hoặc 3.5) 2008 .NET 3.5 SP1, VS 2008

Lịch sử phiên bản lõi(core) của EF

EF Core 2.0 tháng 8 năm 2017 .NET Core 2.0, VS 2017
Lõi EF 1.1 Tháng 11 năm 2016 .NET Lõi 1.1
EF Core 1.0 tháng 6 năm 2016 .NET Core 1.0

Tại sao lại sử dụng Entity Framework?

Sử dụng Entity Framework sẽ mang lại những lợi ích sau:

  • Nếu bạn thực hiện một truy vấn dữ liệu. Bạn có thể sử dụng Linq to Entities để thao tác các đối tượng được tạo từ Entity Framework, có nghĩa là bạn không phải viết mã sql.
  • Dễ dàng cập nhật các lớp và lệnh mỗi khi cơ sở dữ liệu thay đổi, giúp bạn tiết kiệm rất nhiều thời gian.
  • Entity Framework sẽ tự động tạo các lớp và lệnh thích hợp để chọn, chèn, cập nhật và xóa dữ liệu khỏi cơ sở dữ liệu quan hệ.
  • Entity Framework tự động tạo các lớp để truy cập cơ sở dữ liệu, giúp lập trình viên giảm thời gian viết mã để thao tác với cơ sở dữ liệu. Hỗ trợ bạn không mất quá nhiều thời gian để viết mã thao tác trên cơ sở dữ liệu.

Cấu trúc của Entity Framework

Cấu trúc được mô tả ngắn gọn như sau:

cấu trúc entity framework
cấu trúc entity framework

EDM (Entity Data Model):

EDM bao gồm 3 phần :

  • Mô hình khái niệm (Conceptual Model): Chứa các lớp mô hình và các mối quan hệ của chúng. Nó độc lập với thiết kế bảng cơ sở dữ liệu của bạn.
  • Lập bản đồ (Mapping) : bao gồm thông tin về cách mô hình khái niệm được kết nối với mô hình lưu trữ
  • Mô hình lưu trữ (Storage Model) : Đây là mô hình thiết kế cơ sở dữ liệu bao gồm các bảng, dạng xem, các thủ tục được lưu trữ, các mối quan hệ và khóa.

LINQ to Entities:

Một ngôn ngữ truy vấn để viết các truy vấn vào mô hình đối tượng (object model). Trả về thực thể được xác định trong mô hình khái niệm (Conceptual model).

Entity SQL:

Đây là một ngôn ngữ truy vấn khác, tương tự như LINQ to Entities.

Object Service:

Object service  sẽ chịu trách nhiệm chỉ định quá trình chuyển đổi dữ liệu trả về từ nhà cung cấp dữ liệu khách hàng thực thể thành cấu trúc đối tượng thực thể.

Entity Client Data Provider:

Nhiệm vụ chính của nó là chuyển đổi các truy vấn L2E hoặc Entity SQL thành các truy vấn SQL. Nó được hiểu bởi cơ sở dữ liệu bên dưới. Giao tiếp với nhà cung cấp dữ liệu ADO.Net, nhà cung cấp dữ liệu này sẽ gửi và nhận dữ liệu từ cơ sở dữ liệu.

ADO.Net Data Provider:

Giao tiếp với cơ sở dữ liệu được thực hiện bằng tiêu chuẩn ADO.Net.

Những tính năng của Entity Framework

Các tính năng đáng chú ý nhất của Entity framework:

  • Entity framework hỗ trợ stored procedure.
  • Nó làm việc với bất kỳ cơ sở dữ liệu quan hệ nào có Entity Framework hợp lệ.
  • Entity Framework tạo truy vấn SQL từ LINQ to Entities.
  • Nó được phát triển như một sản phẩm mã nguồn mở.
  • Entity framework là một sản phẩm của Microsoft.
  • EF cho phép tạo những câu lệnh thêm, xóa, cập nhật.
  • Theo dõi những thay đổi của các đối tượng trong bộ nhớ.

Các tình huống dùng Entity Framework?

Entity framework là rất hữu ích trong 3 tình huống sau:

Database First: Đầu tiên là nếu bạn đã có cơ sở dữ liệu hoặc muốn thiết kế cơ sở dữ liệu trước khi xử lý phần còn lại của ứng dụng.

Database First entity framework
Database First entity framework

Code First: Thứ hai, bạn muốn tập trung vào các lớp miền và sau đó tạo cơ sở dữ liệu từ các domain class đó.

code-first-entity-framework
code-first-entity-framework

Model First: Thứ ba, bạn thiết kế lược đồ cơ sở dữ liệu trên trình thiết kế trực quan, sau đó tạo cơ sở dữ liệu và các lớp.

Model First entity framework
Model First entity framework

Hướng dẫn tạo project và cài đặt Entity Framework trong C#

1. Tạo project C#: 

Mở Visual Studio -> tạo một project

tạo project c#
tạo project c#

2. Cài đặt Entity Framework

Trong mục Solution Explorer, chuột phải lên project -> chọn Manage NuGet Packages…

Cài đặt Entity Framework
Cài đặt Entity Framework

Click Entity Framework -> chọn Install

setting entity framework
setting entity framework

Ấn Ok để cài đặt.

cài đặt entity fw
cài đặt entity fw

Sau đó bạn ấn Chọn I Accept.

Thông báo này sẽ được hiển thị sau khi cài đặt thành công

setup-entity-framework-done

3. Chuẩn bị cơ sở dữ liệu

Mở SQL Server Management Studio -> kết nối đến server

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

Tạo một cơ sở dữ liệu tên EntityDB

tạo entity database
tạo entity database

Trong CSDL tạo một table tên Student gồm có 4 column là StudentID, StudentName, StudentGender và Address

database entity student
database entity student

4. Sử dụng Entity Framework

Tạo ADO.NET Entity Data Model

Trong Solution Explorer, chuột phải lên project -> chọn Add -> chọn New Item…

ADO.NET Entity Data Model
ADO.NET Entity Data Model

Chọn Visual C# Items -> chọn ADO.NET Entity Data Model -> nhập DatabaseFirstModel -> chọn Add

database first-model
database first-model

Chọn  EF Designer from database -> chọn Next

connect entity db
connect entity db

Trong trường hợp bạn chọn New Connection… -> chọn tên máy chủ (Server name), chọn cơ sở dữ liệu (Database name) -> chọn OK

chọn db name
chọn db name

Chọn Next

db connect end
db connect end

Chọn table và chọn Finish

finish connect db
finish connect db

Xong ấn Ok thêm một lần nữa.

Kết quả sau khi hoàn thành:

kết quả entity framework
kết quả entity framework

DatabaseFirstModel.edmx cần được lưu trước khi viết mã

5. Viết code:

Mở Program.cs và nhập mã sau:

viết code entity framework
viết code entity framework

Thêm dữ liệu vào SQL

data entity framework
data entity framework

Chạy chương trình:

Kết quả

kết quả chạy chương trình entity
kết quả chạy chương trình entity

Cảm ơn bạn đã xem bài viết của tôi.

Related Posts

Hướng dẫn trò chơi Thần tài Go88 cho người chơi mới đầy đủ nhất 

Nếu bạn là người yêu thích slot thì không thể bỏ lỡ Thần tài Go88. Trò chơi jackpot siêu thú vị và được lấy ý tưởng từ…

Điểm danh 5 mẹo chơi game bài đổi thưởng Phỏm Sunwin

Phỏm là là thể loại game bài thu hút được rất nhiều người chơi tại Sunwin. Nhờ giao diện đẹp mắt cùng giá trị trả thưởng hấp…

Thùng phá sảnh là gì trong game bai doi thuong Mậu binh?

Đắm chìm vào từng giây phút đỉnh cao khi tham gia game bai doi thuong Mậu Binh hàng đầu thị trường. Từ đây những anh em sẽ…

Cùng go88 tìm hiểu về trò chơi đánh bài đổi quà Xì dách siêu hấp dẫn

Xì dách go88 là một trò chơi đánh bài đổi quà đang rất đang được ưa thích. Đây là tựa game bài trực tuyến trở thành một…

Tiến Lên online – Trò chơi đáng để bạn quan tâm tại Sunwin

Thế giới game online ngày càng đa dạng. Cược thủ có thể dễ dàng tìm kiếm một trò chơi phù hợp để trải nghiệm. Và rồi anh…

Nhà cái Sin88: Thương hiệu cá cược trực tuyến đỉnh nhất 2023

Các bạn tham gia cá cược đang có cơ hội khám phá một tên tuổi mới đang nổi lên trong làng cá cược – đó chính là…