Entity Framework là gì?
Khung thực thể là gì?
Trước .NET 3.5, chúng tôi (nhà phát triển) thường sử dụng để viết mã ADO.NET hoặc Khối truy cập dữ liệu doanh nghiệp để lưu hoặc truy xuất dữ liệu ứng dụng từ cơ sở dữ liệu cơ bản. Chúng tôi đã từng mở một kết nối tới cơ sở dữ liệu, tạo một Bộ dữ liệu để tìm nạp hoặc gửi dữ liệu đến cơ sở dữ liệu, chuyển đổi dữ liệu từ các đối tượng Dataset sang .NET hoặc ngược lại để áp dụng các quy tắc kinh doanh. Đây là một quá trình dễ bị rườm rà và dễ bị lỗi. Microsoft đã cung cấp một khung gọi là "Entity Framework" để tự động hóa tất cả các hoạt động liên quan đến cơ sở dữ liệu này cho ứng dụng của bạn.
Entity Framework là một khung ORM mã nguồn mở cho các ứng dụng .NET được Microsoft hỗ trợ. Nó cho phép các nhà phát triển làm việc với dữ liệu bằng cách sử dụng các đối tượng của các lớp cụ thể của miền mà không cần tập trung vào các bảng và cột cơ sở dữ liệu cơ bản nơi dữ liệu này được lưu trữ. Với Entity Framework, các nhà phát triển có thể làm việc ở mức độ trừu tượng cao hơn khi họ xử lý dữ liệu và có thể tạo và duy trì các ứng dụng hướng dữ liệu với ít mã hơn so với các ứng dụng truyền thống.
Định nghĩa chính thức: Khung Entity Ent là một trình ánh xạ quan hệ đối tượng (O / RM) cho phép các nhà phát triển .NET làm việc với cơ sở dữ liệu bằng các đối tượng .NET. Nó loại bỏ sự cần thiết của hầu hết các mã truy cập dữ liệu mà các nhà phát triển thường cần viết.
Hình dưới đây minh họa nơi Entity Framework phù hợp với ứng dụng của bạn.
Theo hình trên, Entity Framework phù hợp giữa các thực thể kinh doanh (các lớp miền) và cơ sở dữ liệu. Nó lưu dữ liệu được lưu trữ trong các thuộc tính của các thực thể kinh doanh và cũng lấy dữ liệu từ cơ sở dữ liệu và tự động chuyển đổi nó thành các đối tượng thực thể kinh doanh.
Các tính năng khung thực thể
Đa nền tảng: EF Core là một khung đa nền tảng có thể chạy trên Windows, Linux và Mac.
Mô hình hóa: EF (Entity Framework) tạo EDM (Mô hình dữ liệu thực thể) dựa trên các thực thể POCO (Plain Old CLR Object) với các thuộc tính get / set của các loại dữ liệu khác nhau. Nó sử dụng mô hình này khi truy vấn hoặc lưu dữ liệu thực thể vào cơ sở dữ liệu cơ bản.
Truy vấn: EF cho phép chúng tôi sử dụng các truy vấn LINQ (C # / VB.NET) để truy xuất dữ liệu từ cơ sở dữ liệu cơ bản. Nhà cung cấp cơ sở dữ liệu sẽ dịch các truy vấn LINQ này sang ngôn ngữ truy vấn dành riêng cho cơ sở dữ liệu (ví dụ: SQL cho cơ sở dữ liệu quan hệ). EF cũng cho phép chúng tôi thực hiện các truy vấn SQL thô trực tiếp đến cơ sở dữ liệu.
Theo dõi thay đổi: EF theo dõi các thay đổi xảy ra đối với các phiên bản của các thực thể của bạn (Giá trị thuộc tính) cần được gửi đến cơ sở dữ liệu.
Lưu: EF thực thi các lệnh INSERT, UPDATE và DELETE vào cơ sở dữ liệu dựa trên những thay đổi xảy ra với các thực thể của bạn khi bạn gọi phương thức SaveChanges (). EF cũng cung cấp phương thức SaveChangesAsync () không đồng bộ.
Đồng thời: EF sử dụng Đồng thời lạc quan theo mặc định để bảo vệ các thay đổi ghi đè do người dùng khác thực hiện do dữ liệu được lấy từ cơ sở dữ liệu.
Giao dịch: EF thực hiện quản lý giao dịch tự động trong khi truy vấn hoặc lưu dữ liệu. Nó cũng cung cấp các tùy chọn để tùy chỉnh quản lý giao dịch.
Bộ nhớ đệm: EF bao gồm cấp bộ nhớ đệm đầu tiên ra khỏi hộp. Vì vậy, truy vấn lặp đi lặp lại sẽ trả về dữ liệu từ bộ đệm thay vì nhấn cơ sở dữ liệu.
Các quy ước tích hợp: EF tuân theo các quy ước về mẫu lập trình cấu hình và bao gồm một bộ quy tắc mặc định tự động định cấu hình mô hình EF.
Cấu hình: EF cho phép chúng tôi định cấu hình mô hình EF bằng cách sử dụng các thuộc tính chú thích dữ liệu hoặc API Fluent để ghi đè các quy ước mặc định.
Di chuyển: EF cung cấp một tập hợp các lệnh di chuyển có thể được thực thi trên Bảng điều khiển Trình quản lý gói NuGet hoặc Giao diện dòng lệnh để tạo hoặc quản lý Lược đồ cơ sở dữ liệu cơ bản.
Entity Framework Phiên bản mới nhất
Microsoft đã giới thiệu Entity Framework vào năm 2008 với .NET Framework 3.5. Kể từ đó, nó đã phát hành nhiều phiên bản của Entity Framework. Hiện tại, có hai phiên bản mới nhất của Entity Framework: EF 6 và EF Core. Bảng sau liệt kê sự khác biệt quan trọng giữa EF 6 và EF Core.
Lịch sử phiên bản EF 6
Phiên bản EF Năm phát hành .NET Framework
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
Tìm hiểu thêm về lịch sử phiên bản EF 6 và các tính năng của nó tại đây.
Lịch sử phiên bản lõi của EF
Phiên bản EF Core Ngày phát hành .NET Framework
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ìm hiểu về quy trình làm việc cơ bản trong khi làm việc với Entity Framework trong chương tiếp theo.