Việc viết mã và quản lý bằng mã ADO.Net để truy cập dữ liệu thường tốn nhiều thời gian và công sức. Để giải quyết vấn đề này, Microsoft đã giới thiệu Entity Framework, một O/RM framework giúp tự động hóa các hoạt động liên quan đến cơ sở dữ liệu (CSDL), từ đó đơn giản hóa quá trình xây dựng ứng dụng. Vậy, Entity Framework là gì và nó mang lại lợi ích gì cho các nhà phát triển .NET? Hãy cùng tìm hiểu chi tiết.
Mục Lục
Entity Framework là gì?
Entity Framework là một framework hỗ trợ tương tác giữa các ứng dụng .NET và các cơ sở dữ liệu quan hệ. Nó đóng vai trò là công cụ ánh xạ giữa các đối tượng trong ứng dụng của bạn với các bảng trong cơ sở dữ liệu quan hệ.
Một định nghĩa khác về Entity Framework:
Entity Framework là một ORM (Object Relational Mapper) framework mã nguồn mở được Microsoft hỗ trợ cho các ứng dụng .NET. Nó là một phần của .NET Framework và là một Open source ORM Framework.
Lưu ý: ORM là một công cụ tự động tạo ra các Objects trong ứng dụng từ tables, views, store procedures của một Relational Database.
Entity Framework giúp các nhà phát triển Web tương tác với dữ liệu quan hệ theo phương pháp hướng đối tượng, giảm thiểu lượng mã cần thiết so với các ứng dụng truyền thống. Lợi ích lớn nhất của nó là giúp lập trình viên giảm thiểu việc viết mã nguồn để thực hiện truy cập và tương tác với cơ sở dữ liệu.
Hiện nay, Entity Framework là một framework mạnh mẽ để phát triển ứng dụng Web, được cộng đồng hỗ trợ rộng rãi.
Lịch sử ra đời và phát triển
Entity Framework được ra mắt vào năm 2008. Sự ra đời của nó đã đơn giản hóa việc truy vấn cơ sở dữ liệu quan hệ, giúp giảm đáng kể thời gian phát triển dự án.
Lịch sử các phiên bản EF 6
Dưới đây là lịch sử các phiên bản của Entity Framework 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 (hay 3.5) (2008): .NET 3.5 SP1, VS 2008
Lịch sử các phiên bản Core của EF
Dưới đây là lịch sử các phiên bản Core của Entity Framework:
- EF Core 2.0 (Tháng 8/2017): .NET Core 2.0, VS 2017
- EF Core 1.1 (Tháng 11/2016): .NET Core 1.1
- EF Core 1.0 (Tháng 6/2016): .NET Core 1.0
Tại sao nên sử dụng Entity Framework?
Sử dụng Entity Framework mang lại nhiều lợi ích đáng kể:
- Truy vấn dữ liệu dễ dàng: Sử dụng LINQ to Entities để thao tác với các đối tượng được sinh ra từ Entity Framework, giúp bạn không cần viết mã SQL trực tiếp.
- Cập nhật dễ dàng: Việc cập nhật các classes và commands trở nên dễ dàng hơn mỗi khi cơ sở dữ liệu có sự thay đổi, giúp bạn tiết kiệm thời gian đáng kể.
- Tự động hóa: Entity Framework tự động tạo ra các classes và commands tương ứng cho việc select, insert, update, delete dữ liệu từ cơ sở dữ liệu quan hệ.
- Giảm thời gian phát triển: Entity Framework tự động tạo ra các classes cho việc truy xuất cơ sở dữ liệu, giúp lập trình viên giảm thời gian viết code thao tác với database.
Cấu trúc của Entity Framework
Cấu trúc của Entity Framework có thể được mô tả đơn giản như sau:
Alt: Sơ đồ cấu trúc tổng quan của Entity Framework với các thành phần chính.
EDM (Entity Data Model)
EDM bao gồm 3 phần chính:
- Conceptual Model: Chứa các model class và các quan hệ của chúng. Nó độc lập với thiết kế bảng CSDL của bạn.
- Mapping: Bao gồm thông tin về cách Conceptual model kết nối với Storage model.
- Storage Model: Đây là database design model bao gồm các bảng, views, stored procedures, các quan hệ và các khóa.
Các thành phần khác
- LINQ to Entities: Ngôn ngữ truy vấn sử dụng để viết các truy vấn tới object model. Trả về các thực thể được định nghĩa bên trong Conceptual model.
- Entity SQL: Một ngôn ngữ truy vấn khác, tương tự như LINQ to Entities.
- Object Service: Chịu trách nhiệm chuyển đổi dữ liệu trả về từ một entity client data provider tới một entity object structure.
- Entity Client Data Provider: Chuyển đổi LINQ to Entities hoặc các truy vấn Entity SQL vào một truy vấn SQL mà CSDL có thể hiểu được. Giao tiếp với sentayho.com.vn data provider để gửi và nhận dữ liệu từ CSDL.
- sentayho.com.vn Data Provider: Thực hiện giao tiếp với CSDL bằng cách sử dụng chuẩn sentayho.com.vn.
Các tính năng nổi bật của Entity Framework
Entity Framework sở hữu nhiều tính năng đáng chú ý:
- Hỗ trợ stored procedure.
- Làm việc với bất kỳ cơ sở dữ liệu quan hệ nào có Entity Framework hợp lệ.
- Tạo truy vấn SQL từ LINQ to Entities.
- Là một sản phẩm mã nguồn mở.
- Cho phép tạo các 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 sử dụng Entity Framework
Entity Framework đặc biệt hữu ích trong ba tình huống sau:
- Database First: Khi bạn đã có một CSDL hoặc muốn thiết kế CSDL trước khi làm các phần khác của ứng dụng.
Alt: Mô hình Database First trong Entity Framework, tập trung vào việc sử dụng cơ sở dữ liệu đã có.
- Code First: Khi bạn muốn tập trung vào các domain class rồi mới tạo CSDL từ các domain class đó.
Alt: Mô hình Code First trong Entity Framework, tập trung vào việc tạo cơ sở dữ liệu từ code.
- Model First: Khi bạn muốn thiết kế schema của CSDL trên visual designer rồi mới tạo CSDL và các class.
Alt: Mô hình Model First trong Entity Framework, tập trung vào việc thiết kế cơ sở dữ liệu trực quan.
Hướng dẫn tạo project và cài đặt Entity Framework trong C
Để bắt đầu sử dụng Entity Framework trong dự án C#, bạn có thể làm theo các bước sau:
1. Tạo project C
Mở Visual Studio và tạo một project C# mới.
Alt: Giao diện tạo project C# mới trong Visual Studio.
2. Cài đặt Entity Framework
Trong mục Solution Explorer, chuột phải lên project, chọn Manage NuGet Packages…
Alt: Chọn “Manage NuGet Packages…” trong Solution Explorer để cài đặt Entity Framework.
Chọn Entity Framework, sau đó chọn Install.
Alt: Chọn gói Entity Framework và nhấn Install trong NuGet Package Manager.
Ấn OK để cài đặt và sau đó chọn I Accept.
Alt: Chấp nhận các điều khoản để hoàn tất quá trình cài đặt Entity Framework.
Khi cài đặt thành công, bạn sẽ thấy thông báo tương tự như hình dưới:
Alt: Thông báo xác nhận cài đặt Entity Framework thành công trong Visual Studio.
3. Chuẩn bị cơ sở dữ liệu
Mở SQL Server Management Studio và kết nối đến server.
Alt: Giao diện kết nối đến SQL Server trong SQL Server Management Studio.
Tạo một cơ sở dữ liệu với tên EntityDB.
Alt: Tạo cơ sở dữ liệu mới với tên “EntityDB” trong SQL Server Management Studio.
Trong CSDL, tạo một table tên Student gồm có 4 column: StudentID, StudentName, StudentGender và Address.
Alt: Tạo bảng “Student” với các cột thông tin trong cơ sở dữ liệu.
4. Sử dụng Entity Framework
Tạo sentayho.com.vn Entity Data Model
Trong Solution Explorer, chuột phải lên project, chọn Add, sau đó chọn New Item…
Alt: Chọn “Add” -> “New Item…” để thêm Entity Data Model vào project.
Chọn Visual C# Items, chọn sentayho.com.vn Entity Data Model, nhập DatabaseFirstModel, sau đó chọn Add.
Alt: Chọn “EF Designer from database” để tạo model từ cơ sở dữ liệu đã có.
Chọn EF Designer from database, sau đó chọn Next.
Alt: Chọn hoặc tạo kết nối đến cơ sở dữ liệu trong Entity Framework.
Chọn kết nối hiện tại có hoặc chọn New Connection để thiết lập một kết nối mới.
Alt: Nhập thông tin kết nối đến SQL Server trong Visual Studio.
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), sau đó chọn OK.
Alt: Chọn cơ sở dữ liệu “EntityDB” từ danh sách các cơ sở dữ liệu.
Chọn Next.
Alt: Kiểm tra và hoàn tất quá trình thiết lập kết nối đến cơ sở dữ liệu.
Chọn table và chọn Finish.
Alt: Chọn bảng “Student” và nhấn Finish để tạo Model từ cơ sở dữ liệu.
Chọn OK thêm một lần nữa.
Kết quả sau khi hoàn thành:
Alt: Giao diện của Entity Data Model sau khi được tạo thành công.
Bạn cần lưu sentayho.com.vn trước khi viết code.
5. Viết code
Mở sentayho.com.vn và nhập code.
Alt: Viết code C# để tương tác với cơ sở dữ liệu thông qua Entity Framework.
Thêm dữ liệu vào SQL.
Alt: Thêm dữ liệu mẫu vào bảng “Student” trong cơ sở dữ liệu.
Chạy chương trình và kiểm tra kết quả.
Alt: Kết quả hiển thị sau khi chạy chương trình sử dụng Entity Framework.
Kết luận
Entity Framework là một công cụ mạnh mẽ giúp đơn giản hóa việc tương tác giữa ứng dụng .NET và cơ sở dữ liệu. Bằng cách sử dụng Entity Framework, các nhà phát triển có thể giảm thiểu thời gian và công sức cần thiết để viết mã truy cập dữ liệu, đồng thời tăng tính bảo trì và mở rộng của ứng dụng. Hy vọng bài viết này đã cung cấp cho bạn cái nhìn tổng quan và hướng dẫn chi tiết về Entity Framework.
Tham khảo nguồn: sentayho.com.vn/huong-dan-thuc-hanh/huong-dan-csharp/huong-dan-su-dung-entity-framework-trong-c/
Bài viết cùng chủ đề:
- .NET Framework là gì? .net framework dùng để làm gì?
