Entity Framework Core is the new version of Entity Framework after EF 6.x. It is open-source, lightweight, extensible and a cross-platform version of Entity Framework data access technology.
Entity Framework is an Object/Relational Mapping (O/RM) framework. It is an enhancement to ADO.NET that gives developers an automated mechanism for accessing & storing the data in the database.
EF Core is intended to be used with .NET Core applications. However, it can also be used with standard .NET 4.5+ framework based applications.
The following figure illustrates the supported application types, .NET Frameworks and OSs.
EF Core Version | Release Date | Target Framework |
---|---|---|
EF Core 7.0 | Nov 2022 | .NET 6 |
EF Core 6.0 | Nov 2021 | .NET 6 |
EF Core 5.0 | Nov 2020 | .NET Standard 2.1 |
EF Core 3.0 | Sept 2019 | .NET Standard 2.1 |
EF Core 2.0 | August 2017 | .NET Standard 2.0 |
EF Core 1.0 | June 2016 | .NET Standard 2.1 |
EF Core Official Documentation: https://learn.microsoft.com/en-us/ef/core/
EF Core on GitHub: https://github.com/dotnet/efcore
EF Core releases and planning: https://learn.microsoft.com/en-us/ef/core/what-is-new/
EF Core supports two development approaches 1) Code-First 2) Database-First. EF Core mainly targets the code-first approach and provides little support for the database-first approach because the visual designer or wizard for DB model is not supported as of EF Core.
In the code-first approach, EF Core API creates the database and tables using migration based on the conventions and configuration provided in your domain classes. This approach is useful in Domain Driven Design (DDD).
In the database-first approach, EF Core API creates the domain and context classes based on your existing database using EF Core commands. This has limited support in EF Core as it does not support visual designer or wizard.
Entity Framework Core is the new and improved version of Entity Framework for .NET Core applications. EF Core is new, so still not as mature as EF 6.
EF Core continues to support the following features and concepts, same as EF 6.
Learn more on EF Core and EF 6 differences at here.
Entity Framework Core uses a provider model to access many different databases. EF Core includes providers as NuGet packages which you need to install.
The following table lists database providers and NuGet packages for EF Core.
Database | NuGet Package |
---|---|
SQL Server | Microsoft.EntityFrameworkCore.SqlServer |
MySQL | MySql.Data.EntityFrameworkCore |
PostgreSQL | Npgsql.EntityFrameworkCore.PostgreSQL |
SQLite | Microsoft.EntityFrameworkCore.SQLite |
SQL Compact | EntityFrameworkCore.SqlServerCompact40 |
In-memory | Microsoft.EntityFrameworkCore.InMemory |
Learn to install EF Core in the next chapter.