Entity Framework là gì? Tìm hiểu chung về Entity Framework

Mục lục

1. Có thể bạn chưa hiểu hết về Entity Framework là gì?

1.1. Giải đáp Entity Framework là gì?

Có thể hiểu Entity Framework là một chương trình giúp cho ánh xạ qua lại giữa các object của một chương trình, bản ghi, bảng cơ sở dữ liệu quan hệ. Hay hiểu một cách đơn giản hơn thì Entity Framework chính là một thư viện ORM. Đây là một công cụ được Microsoft phát triển từ năm 2008 và nó trở thành công cụ làm việc cùng với cơ sở dữ liệu được Microsoft khuyến nghị.

Trong đó thì ORM chính là một tập hợp công nghệ có thể làm việc với các hệ quản trị cơ sở dữ liệu quan hệ từ những ngôn ngữ hướng đối tượng và không phải trực tiếp để xử lý truy vấn SQL.

Các ORM sẽ hỗ trợ lập trình hai chiều: cấu trúc bảng với class, bảng ghi  với object trong bảng, các thuộc tính với cột của bảng. Đối với quá trình này thì mỗi truy vấn của SQL sẽ được ORM tự động sinh ra và thực hiện. Điều này sẽ rất có lợi cho người lập trình bởi họ chỉ cần học và làm quen với các thuật ngữ, khái niệm của ngôn ngữ lập trình hướng đối tượng là được.

Ngoài ra thì trong quá trình ánh xạ này thì ORM sẽ hỗ trợ tự động để có thể xử lý sự chênh lệch giữa ngôn ngữ lập trình hướng đối tượng với cơ sở dữ liệu quan hệ. Sự chênh lệch, vênh nhau này gồm: Vênh kiểu giữa .NET và RDBMS, cách lưu trữ, mỗi quan hệ phức tạp giữa object và quan hệ các bảng.

Như vậy với vài thông tin cụ thể về Entity Framework trên đây, bạn cũng đã hiểu hơn về Entity Framework là gì? Tuy nhiên cũng đừng vội rời khỏi bài viết này vì những thông tin sau sẽ rất hữu ích cho bạn đó.

1.2. Lịch sử ra đời của Entity Framework

Entity Framework được Microsoft chính thức phát triển từ năm 2008, tính đến nay cũng được trên 12 năm và hiện nay thì Entity Framework đã được Microsoft khuyến nghị sử dụng. Ra đời cùng với .NET 3.5 và phiên bản mới nhất là 6.0.

+ Đối với phiên bản Entity Framework đầu thì nó chỉ hỗ trợ người dùng tiếp cận Database first. Tức là EF khi đó chỉ có thể làm việc cùng với một cơ sở dữ liệu đã có sẵn và nó giúp sinh ra các lớp code, model bằng C# hoặc là VB.NET.

+ Phiên bản Entity Framework 4 xuất hiện hướng tiếp cận Model first, giúp cho người dùng thiết kế các lớp thực tế trước sử dụng giao diện đồ họa.

+ Đến phiên bản 4.1 thì đã đưa thêm được hướng tiếp cận của code first. Tức là mọi thứ đều có thể viết bằng code VB.NET hoặc là C# từ đầu. Có thể nói hướng tiếp cận này vô cùng được nhiều lập trình viên hứng thú và sử dụng một cách rộng rãi.

2. Đặc điểm của Entity Framework là gì?

Để hiểu rõ hơn Entity Framework thì bạn cần phải tìm hiểu về đặc điểm của nó như thế nào, sau đó mới có thể áp dụng linh hoạt trong công việc. Entity Framework sẽ có 3 đặc điểm nổi bật như sau:

+ Thứ nhất là tất cả cơ sở dữ liệu đều được thể hiện bằng một lớp con của DBContext. Mỗi bảng dữ liệu sẽ được thể hiện bằng một object của Dbset. Mỗi hàng trong bảng đó sẽ thể hiện một object của lớp thực tế mà bạn đã xây dựng. Còn mỗi cột sẽ được thể hiện bằng thuộc tính của object. Đối với những thao tác này thì hoàn toàn được thực hiện một cách tự động, hoặc là cũng có thể can thiệp vào chúng theo ý của mình.

+ Thứ hai chính là bạn có thể sử dụng để truy vấn dữ liệu sử dụng LINQ mà không phải sử dụng SQL. Người dùng có thể đơn giản hơn khi thực hiện các truy vấn CRUD từ code C# với các class mà không cần phải viết bất kỳ một dòng SQL nào.

+ Thứ ba chính là có thể thực hiện thao tác với các cấu trúc dữ liệu như: Tạo ra cơ sở dữ liệu, đổi cấu trúc bảng, tạo bảng,… một cách đơn giản và nhanh chóng với công cụ Migration mà cũng sẽ không mất dữ liệu.

Đó chính là 3 đặc điểm nổi bật, cơ bản nhất mà một người lập trình viên khi sử dụng Entity Framework cần phải nhớ rõ. Khi nhớ được những đặc điểm này của nó thì quá trình sử dụng, thay thế khi lập trình cũng được đơn giản hóa hơn.

3. Những lợi ích khi sử dụng Entity Framework

Entity Framework được Microsoft phát triển và khuyến nghị sử dụng, bên cạnh đó thì nó cũng được rất nhiều lập trình viên ưa chuộng sử dụng. Chắc chắn Entity Framework sẽ phải có những lợi ích tích cực thì mới được ưa chuộng đến như vậy, trong phần này chúng ta cùng tìm hiểu về lợi ích khi sử dụng Entity Framework nhé!

Ưu điểm, lợi ích của Entity Framework bao gồm như sau:

+ Entity Framework sẽ giúp cho người sử dụng có thể tăng năng suất thông qua giảm số lượng code của mình. Trên thực tế đã cho thấy có đến khoảng 35% code của các chương trình thông thường là sẽ làm việc cùng với cơ sở dữ liệu. Tuy nhiên nếu như bạn sử dụng một Entity Framework chất lượng thì nó có thể giúp bạn giảm con số này xuống khoảng 15-20%, cũng có những trường hợp giảm chỉ còn 5%. Đây là con số không hề nhỏ chút nào, nó giúp cho người sử dụng tiết kiệm được nhiều thời gian, công sức và chất xám của mình trong quá trình làm việc. Thời gian tiết kiệm đó sẽ giúp họ làm được nhiều các công việc khác.

+ Entity Framework làm giảm sự phức tạp hóa khi cần bảo trì phần mềm. Bạn có thể so sánh đơn giản, việc bảo trì 400 dòng code và bảo trì khoảng 1000 dòng code thì cái nào sẽ đơn giản hơn. Khi số lượng code ít thì bảo trì, kiểm tra lại cũng sẽ đơn giản hơn. Đặc biệt là khi bạn phải bảo trì thường xuyên, dài hạn. Đối với bảo trì có thể thực hiện ở trên phía cơ sở dữ liệu và ứng dụng mà không khiến người dùng phải code lại.

+ Entity Framework sẽ được đặt trong .NET Framewwork, được tích hợp trong cả Visual studio. Yếu tố này sẽ giúp cho người dùng làm việc với EF đơn giản hơn và tiện lợi hơn nhiều. Có thể đây sẽ là lý do chính khiến cho nhiều người từ sử dụng Nhibernata mà sử dụng thành EF. Còn một ORM cũng khá phổ biến và dễ sử dụng cho .NET. Entity frameword, nó cũng là ORM mà được nhà phát triển khuyến nghị sử dụng. Cũng có rất nhiều các công ty lớn đầu tư vào ORM này.

Đó chính là những lợi ích mà một Entity Framework đem lại. Thế nhưng bên cạnh những lợi ích đó thì Entity Framework cũng đã gây rất nhiều tranh cãi về mặt hạn chế. Không có công cụ nào ra đời mà lại hoàn hảo ở mức tuyệt đối, đôi khi nó cũng có những điểm hạn chế của mình. Đối với Entity Framework cũng vậy, khi sử dụng nó thì sẽ gây ra nhược điểm hiệu suất khá lớn. Bởi vì ORM phức tạp, khi sử dụng sẽ dẫn đến giảm hiệu suất hơn khi sử dụng ADO.NET. Song, hạn một hạn chế này sẽ khiến cho nhiều lập trình viên phải so sánh với những lợi ích mà nó đem lại cho mình trong quá trình sử dụng.

4. Kiến trúc của một Entity Framework bao gồm những gì?

4.1. Thành phần Entity Data Model

Entity Data Model được hiểu là thành phần dùng để lưu trtuwx các thông tin ánh xạ, hay còn được gọi là Mapping giữa các class và cơ sở dữ liệu đó. Entity Data Model sẽ giúp nối giữa các lớp model với cơ sở dữ liệu, thế nhưng cũng giúp chương trình tách biệt với cơ sở dữ liệu.

Entity Data Model sẽ có 3 thành phần chính như sau:

+ Thành phần conceptual model nó sẽ đảm nhận nhiệm vụ lưu các thông tin về các lớp model và quan hệ giữa chúng.

+ Thành phần Storage model: Sẽ chịu trách nhiệm để lưu thông tin về cơ sở dữ liệu (gồm bảng, view, stored procedure, quan hệ, khóa)

+ Thành phần mapping model: Sẽ chịu trách nhiệm lưu thông tin ánh xạ giữa các conceptutal và storage model.

4.2. Thành phần LINQ to Entities và Entity SQL

Có thể nói LINQ to Entities và Entity SQL là hai ngôn ngữ sử dụng trong việc truy vấn dữ liệu. Nó có hai ngôn ngữ để truy vấn là bởi vì Entity Framework được xây dựng từ trước và Entity SQL được lập ra để làm ngôn ngữ truy vấn, sau đó thì LINQ mới hình thành và phát triển rồi được đưa vào EF.

Trong trường hợp lập trình viên đã sử dụng và quen với LINQ trước đó thì bạn có thể sử dụng nó cho LINQ to Entities bởi chúng giống nhau. Bên cạnh đó thì cũng không nhất thiết phải học thêm Entity SQL nữa vì cú pháp của nó nhìn khó rối mắt và gây cảm giác khó chịu cho người học, chính vì thế mà quá trình tiếp thu của bạn sẽ khó khăn hơn nhiều.

4.3. Thành phần Object services

Object services là cách để truy xuất dữ liệu, đối với tầng này sẽ phải thực hiện quá trình chuyển dữ liệu dạng bảng nhận từ tầng bên dưới về dạng object. (Lưu ý: dữ liệu bảng nhận của tầng dưới sẽ không phải là dữ liệu bảng để thu trực tiếp về cơ sở dữ liệu mà nó là dạng trung gian tên model tabular structre.

Bên cạnh đó thì tầng này cũng sẽ phải đảm nhận một nhiệm vụ chính là quản lý trạng thái. Tức là theo dõi các thay đổi của object. Quá trình quản lý này có vai trò vô cùng đặc biệt quan trọng khi thực hiện thêm mới, cập nhật và xóa bỏ dữ liệu.

4.4. Thành phần Entity Client data provider

Entity Client data provider sẽ chịu trách nhiệm chính là tương tác với Data provider của ADO.NET. Nó sẽ làm chuyển đổi truy vấn LINQ to Entities hoặc là Entity SQL về để truy vấn SQL.

Nhiệm vụ thứ hai của thành phần này sẽ là chuyển kết quả thu được từ truy vấn SQL về dạng trung gian và kết quả của nó sẽ được chuyển lên cho Object services xử lý.

Đó chính là kiến trúc của một Entity Framework mà bất kỳ lập trình viên nào sử dụng cũng cần phải biết. Như vậy, với toàn bộ thông tin trên đây, chúng ta đã cùng nhau tìm hiểu xong về Entity Framework. Mong rằng với các thông tin này, bạn sẽ hiểu Entity Framework là gì? Và cân nhắc nó trong quá trình sử dụng của mình.

Đăng ngày 20/11/2020, 50 lượt xem