Announcing Entity Framework Core 5.0 Preview 4

Jeremy Likness

Today we are excited to announce the fourth preview release of Entity Framework Core (EF Core) 5.0.

The fourth previews of .NET 5 and ASP.NET Core 5.0 are also available now. Be sure to check out the full release of Blazor WebAssembly 3.2.0!

Prerequisites

The previews of EF Core 5.0 require .NET Standard 2.1. This means:

  • EF Core 5.0 runs on .NET Core 3.1; it does not require .NET 5.
    • This may change in future previews depending on how the plan for .NET 5 evolves.
  • EF Core 5.0 runs on other platforms that support .NET Standard 2.1.
  • EF Core 5.0 will not run on .NET Standard 2.0 platforms, including .NET Framework.

How to get EF Core 5.0 previews

EF Core is distributed exclusively as a set of NuGet packages. For example, to add the SQL Server provider to your project, you can use the following command using the dotnet tool:

dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 5.0.0-preview.4.20220.10

The EF Core packages published today are:

We have also published the 5.0 preview 4 release of the Microsoft.Data.Sqlite.Core ADO.NET provider.

Installing dotnet ef

As with EF Core 3.0 and 3.1, the dotnet ef command-line tool is no longer included in the .NET Core SDK. Before you can execute EF Core migration or scaffolding commands, you’ll have to install this package as either a global or local tool.

dotnet-ef

To install the preview tool globally, first uninstall any existing version with:

dotnet tool uninstall --global dotnet-ef

Then install with:

dotnet tool install --global dotnet-ef --version 5.0.0-preview.4.20220.10

It’s possible to use this new version of dotnet ef with projects that use older versions of the EF Core runtime.


What’s new in EF Core 5 Preview 4

We maintain documentation covering new features introduced into each preview.

Some of the highlights from preview 4 are called out below. This preview also includes several bug fixes.

Configure database precision/scale in model

Precision and scale for a property can now be specified using the model builder. For example:

modelBuilder
    .Entity<Blog>()
    .Property(b => b.Numeric)
    .HasPrecision(16, 4);

Precision and scale can still be set via the full database type, such as “decimal(16,4)”.

Documentation is tracked by issue #527.

Specify SQL Server index fill factor

The fill factor can no be specified when creating an index on SQL Server. For example:

modelBuilder
    .Entity<Customer>()
    .HasIndex(e => e.Name)
    .HasFillFactor(90);

Documentation is tracked by issue #2378.


Daily builds

EF Core previews are aligned with .NET 5 previews. These previews tend to lag behind the latest work on EF Core. Consider using the daily builds instead to get the most up-to-date EF Core features and bug fixes.

As with the previews, the daily builds do not require .NET 5; they can be used with GA/RTM release of .NET Core 3.1.


Documentation and feedback

EF Core docs has a new landing page! The main page for Entity Framework documentation has been overhauled to provide you with a hub experience. We hope this new format helps you find the documentation you need faster and with fewer clicks.

The starting point for all EF Core documentation is docs.microsoft.com/ef/.

Please file issues found and any other feedback on the dotnet/efcore GitHub repo.


The following short links are provided for easy reference and access.

Main documentation: https://aka.ms/efdocs

Issues and feature requests for EF Core: https://aka.ms/efcorefeedback

Entity Framework Roadmap: https://aka.ms/efroadmap

What’s new in EF Core 5.x? https://aka.ms/efcore5


Thank you from the team

A big thank you from the EF team to everyone who has used EF over the years!

ajcvickers Arthur Vickers AndriySvyryd Andriy Svyryd Brice Lambson JeremyLikness Jeremy Likness
lajones lajones maumar Maurycy Markowski roji Shay Rojansky smitpatel Smit Patel

Thank you to our contributors!

A big thank you to the following community members who have already contributed code or documentation to the EF Core 5 release! (List is in chronological order of first contribution to EF Core 5).

aevitas aevitas alaatm Alaa Masoud aleksandar-manukov Aleksandar Manukov amrbadawy Amr Badawy
AnthonyMonterrosa Anthony Monterrosa bbrandt Ben Brandt benmccallum Ben McCallum ccjx Clarence Cai
CGijbels Christophe Gijbels cincuranet Jiri Cincura Costo Vincent Costel dshuvaev Dmitry Shuvaev
EricStG Eric St-Georges ErikEJ Erik Ejlskov Jensen gravbox Christopher Davis ivaylokenov Ivaylo Kenov
jfoshee Jacob Foshee jmzagorski Jeremy Zagorski jviau Jacob Viau knom Max K.
lohoris-crane lohoris-crane loic-sharma Loïc Sharma lokalmatador lokalmatador mariusGundersen Marius Gundersen
Marusyk Roman Marusyk matthiaslischka Matthias Lischka MaxG117 MaxG117 MHDuke MHDuke
mikes-gh Mike Surcouf Muppets Neil Bostrom nmichels Nícolas Michels OOberoi Obi Oberoi
orionstudt Josh Studt ozantopal Ozan Topal pmiddleton Paul Middleton prog-rajkamal Raj
ptjhuang Peter Huang ralmsdeveloper Rafael Almeida Santos redoz Patrik Husfloen rmarskell Richard Marskell
sguitardude sguitardude SimpleSamples Sam Hobbs svengeance Sven VladDragnea Vlad
vslee vslee WeihanLi liweihan Youssef1313 Youssef Victor 1iveowl 1iveowl
thomaslevesque Thomas Levesque akovac35 Aleksander Kovač leotsarev Leonid Tsarev kostat Konstantin Triger
sungam3r Ivan Maximov dzmitry-lahoda Dzmitry Lahoda Logerfo Bruno Logerfo witheej Josh Withee
FransBouma Frans Bouma IGx89 Matthew Lieder paulomorgado Paulo Morgado mderriey Mickaël Derriey
LaurenceJKing Laurence King oskarj Oskar Josefsson bdebaere bdebaere BhargaviAnnadevara-MSFT Bhargavi Annadevara
AlexanderTaeschner Alexander Täschner Jesse-Hufstetler Jesse Hufstetler