Announcing Entity Framework 7 Release Candidate 1
Entity Framework Core 7 (EF7) Release Candidate 1 has shipped! The team focused on addressing defects, minor enhancements, and putting the finishing touches on features.
See the full list of EF7 RC1 changes on GitHub.
For a detailed look at what’s new in EF7, with working samples, check out our newly updated What’s New in EF7 documentation. You can also read the feature deep dives in our previous blog posts:
- EF7 Preview 7 – Interceptors
- EF7 Preview 6 – Performance
- EF7 Preview 5 – Table-per-Concrete Type (TPC)
- EF7 Preview 4 – DDD-friendly converters
- EF7 Preview 3 – customizable database-first scaffolding templates
- EF7 Preview 1 – the beginning
- EF7 targets .NET 6, which means it can be used on .NET 6 (LTS) or .NET 7.
- EF7 will not run on .NET Framework.
EF7 is the successor to EF Core 6.0, not to be confused with EF6. If you are considering upgrading from EF6, please read our guide to port from EF6 to EF Core.
How to get EF7 RC1
EF7 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 7.0.0-rc.1.22426.7
This following table links to the RC1 versions of the EF Core packages and describes what they are used for.
|Microsoft.EntityFrameworkCore||The main EF Core package that is independent of specific database providers|
|Microsoft.EntityFrameworkCore.SqlServer||Database provider for Microsoft SQL Server and SQL Azure|
|Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite||SQL Server support for spatial types|
|Microsoft.EntityFrameworkCore.Sqlite||Database provider for SQLite that includes the native binary for the database engine|
|Microsoft.EntityFrameworkCore.Sqlite.Core||Database provider for SQLite without a packaged native binary|
|Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite||SQLite support for spatial types|
|Microsoft.EntityFrameworkCore.Cosmos||Database provider for Azure Cosmos DB|
|Microsoft.EntityFrameworkCore.InMemory||The in-memory database provider|
|Microsoft.EntityFrameworkCore.Tools||EF Core PowerShell commands for the Visual Studio Package Manager Console; use this to integrate tools like scaffolding and migrations with Visual Studio|
|Microsoft.EntityFrameworkCore.Design||Shared design-time components for EF Core tools|
|Microsoft.EntityFrameworkCore.Proxies||Lazy-loading and change-tracking proxies|
|Microsoft.EntityFrameworkCore.Abstractions||Decoupled EF Core abstractions; use this for features like extended data annotations defined by EF Core|
|Microsoft.EntityFrameworkCore.Relational||Shared EF Core components for relational database providers|
|Microsoft.EntityFrameworkCore.Analyzers||C# analyzers for EF Core|
We also published the release candidate 1 of the Microsoft.Data.Sqlite.Core provider for ADO.NET.
Installing the EF7 Command Line Interface (CLI)
Before you can execute EF7 Core migration or scaffolding commands, you’ll have to install the CLI package as either a global or local tool.
To install the RC tool globally, install with:
dotnet tool install --global dotnet-ef --version 7.0.0-rc.1.22426.7
If you already have the tool installed, you can upgrade it with the following command:
dotnet tool update --global dotnet-ef --version 7.0.0-rc.1.22426.7
It’s possible to use this new version of the EF7 CLI with projects that use older versions of the EF Core runtime.
EF7 release candidates are aligned with .NET 7 release candidates. These releases tend to lag behind the latest work on EF7. Consider using the daily builds instead to get the most up-to-date EF7 features and bug fixes.
As with the release candidates, the daily builds require .NET 6.
The .NET Data Community Standup
The .NET data team is now live streaming every other Wednesday at 10am Pacific Time, 1pm Eastern Time, or 17:00 UTC. Join the stream to ask questions about the data-related topic of your choice, including the latest release candidate.
- Watch our YouTube playlist of previous shows
- Visit the .NET Community Standup page to preview upcoming shows
- Submit your ideas for a guest, product, demo, or other content to cover
Documentation and Feedback
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 links are provided for easy reference and access.
- EF Core Community Standup Playlist: https://aka.ms/efstandups
- Main documentation: https://aka.ms/efdocs
- Issues and feature requests for EF Core: https://aka.ms/efcorefeedback
- Entity Framework Roadmap: https://aka.ms/efroadmap
- Bi-weekly updates: https://github.com/dotnet/efcore/issues/27185
Thank you from the team
A big thank you from the EF team to everyone who has used and contributed to EF over the years!
Welcome to EF7.
Hello Jeremy, congratulations for the hoid work you and you team put on making ef core great and performant. I want to know if in this release json clumns are supported…
Thank you and yes, JSON columns are supported. See: https://docs.microsoft.com/ef/core/what-is-new/ef-core-7.0/whatsnew#json-columns
Hi Jeremy, I did the upgrade but my function app now fails at runtime throwing the dreaded ‘Could not load file or assembly ‘Microsoft.Extensions.Configuration.Abstractions, Version=184.108.40.206, Culture=neutral, PublicKeyToken=adb9793829ddae60′. The system cannot find the file specified.’ error in the ConfigureStartup method. I remember this happening when we upgrade from 3.1 to 5. I’m not even referencing this. It looks like some transitive dependencies stepping on each others toes. Do you have any leads?
A minimal reproduceable repo is here: https://github.com/elninoisback/ef7rc-fnapp-issue
Thank you for sharing this and creating a repro. That is incredibly helpful! If you are able to, please file an issue at:
This will ensure that our team is aware and able to triage and prioritize.
Just a quick question:
While I love the idea of interceptors, I wonder what the overall performance impact is, even if they are not used. In the best case (I guess) it’s a null check on a delegate, but depending there this happens, that is eventually a non-zero overhead which can’t be optimized (because dynamic).
So my question is, is there any performance data in regards of the additional overhead available as well or should we run our own benchmarks to avoid in productions surprises for iteration intensive operations where interceptors may hook in?