Entity Framework Core là phiên bản mới của Entity Framework sau EF 6.x. Nó là mã nguồn mở, nhẹ, có thể mở rộng và là phiên bản đa nền tảng của công nghệ truy cập dữ liệu Entity Framework.
Entity Framework là một khung đối tượng / Ánh xạ quan hệ (O / RM). Đây là một cải tiến của ADO.NET, cung cấp cho các nhà phát triển một cơ chế tự động để truy cập và lưu trữ dữ liệu trong cơ sở dữ liệu.
EF Core dự định sẽ được sử dụng với các ứng dụng .NET Core. Tuy nhiên, nó cũng có thể được sử dụng với các ứng dụng dựa trên khung .NET 4.5+ tiêu chuẩn.
Hình dưới đây minh họa các loại ứng dụng được hỗ trợ, .NET Framework và HĐH.
Lịch sử phiên bản lõi của EF
Ngày phát hành phiên bản lõi của EF
EF Core 2.0 tháng 8 năm 2017
Lõi EF 1.1 tháng 11 năm 2016
EF Core 1.0 tháng 6 năm 2016
Lõi EF trên GitHub: https://github.com/aspnet/EntityFrameworkCore
Lộ trình cốt lõi của EF: docs.microsoft.com/en-us/ef/core/what-is-new/roadmap
Theo dõi các vấn đề của EF Core tại https://github.com/aspnet/EntityFrameworkCore/issues
Tài liệu chính thức của EF Core: https://docs.microsoft.com/ef/core
Phương pháp phát triển cốt lõi của EF
EF Core hỗ trợ hai cách tiếp cận phát triển 1) Code-First 2) Database-First. EF Core chủ yếu nhắm vào cách tiếp cận mã đầu tiên và cung cấp ít hỗ trợ cho cách tiếp cận cơ sở dữ liệu đầu tiên vì trình thiết kế trực quan hoặc trình hướng dẫn cho mô hình DB không được hỗ trợ kể từ EF Core 2.0.
Theo cách tiếp cận đầu tiên về mã, EF Core API tạo cơ sở dữ liệu và các bảng bằng cách sử dụng di chuyển dựa trên các quy ước và cấu hình được cung cấp trong các lớp miền của bạn. Cách tiếp cận này rất hữu ích trong Thiết kế hướng tên miền (DDD).
Theo cách tiếp cận đầu tiên về cơ sở dữ liệu, API của EF Core tạo các lớp miền và ngữ cảnh dựa trên cơ sở dữ liệu hiện có của bạn bằng cách sử dụng các lệnh của EF Core. Điều này có hỗ trợ hạn chế trong EF Core vì nó không hỗ trợ trình thiết kế trực quan hoặc trình hướng dẫn.
Lõi EF vs EF 6
Entity Framework Core là phiên bản mới và cải tiến của Entity Framework cho các ứng dụng .NET Core. EF Core là mới, vì vậy vẫn chưa trưởng thành như EF 6.
EF Core tiếp tục hỗ trợ các tính năng và khái niệm sau, giống như EF 6.
DbContext & Dbset
Mô hình dữ liệu
Truy vấn bằng cách sử dụng Linq-to-Entities
Theo dõi thay đổi
Lưu thay đổi
Di cư
EF Core sẽ bao gồm hầu hết các tính năng của EF 6 dần dần. Tuy nhiên, có một số tính năng của EF 6 không được hỗ trợ trong EF Core 2.0, chẳng hạn như:
EDMX / Trực quan hóa đồ họa của mô hình
Thuật sĩ mô hình dữ liệu thực thể (cho phương pháp DB-First)
API ObjectContext
Truy vấn bằng cách sử dụng SQL thực thể.
Di chuyển tự động
Kế thừa: Bảng mỗi loại (TPT)
Kế thừa: Bảng trên mỗi lớp bê tông (TPC)
Nhiều-nhiều mà không tham gia thực thể
Thực thể tách
Dữ liệu không gian
Lười tải dữ liệu liên quan
Ánh xạ thủ tục được lưu trữ với DbContext cho hoạt động CUD
Dữ liệu hạt giống
Di chuyển tự động
EF Core bao gồm các tính năng mới sau đây không được hỗ trợ trong EF 6.x:
Cấu hình mối quan hệ dễ dàng
Các hoạt động Batch INSERT, UPDATE và DELETE
Nhà cung cấp trong bộ nhớ để thử nghiệm
Hỗ trợ cho IoC (Đảo ngược điều khiển)
Ràng buộc độc đáo
Thuộc tính bóng
Phím thay thế
Bộ lọc truy vấn toàn cầu
Bản đồ trường
DbContext gộp
Các mẫu tốt hơn để xử lý các biểu đồ thực thể bị ngắt kết nối
Tìm hiểu thêm về sự khác biệt của EF Core và EF 6 tại đây.
Nhà cung cấp cơ sở dữ liệu lõi của EF
Entity Framework Core sử dụng mô hình nhà cung cấp để truy cập nhiều cơ sở dữ liệu khác nhau. EF Core bao gồm các nhà cung cấp dưới dạng các gói NuGet mà bạn cần cài đặt.
Bảng sau liệt kê các nhà cung cấp cơ sở dữ liệu và các gói NuGet cho EF Core.
Gói cơ sở dữ liệu NuGet
Máy chủ SQL Microsoft.EntityFrameworkCore.SqlServer
MySQL MySql.Data.EntityFrameworkCore
PostgreSQL Npgsql.EntityFrameworkCore.PostgreSQL
SQLite Microsoft.EntityFrameworkCore.SQLite
SQL nhỏ gọn EntityFrameworkCore.SqlServerCompact40
Trong bộ nhớ Microsoft.EntityFrameworkCore.InMemory
Tìm hiểu để cài đặt EF Core trong chương tiếp theo.