Microsoft Details Entity Framework Core 7 Plan, EF6 to EF Core Porting
Microsoft has been busy with its object-database mapper tooling for .NET, unveiling a plan for Entity Framework Core 7, along with guidance to port EF6 applications to EF Core.
EF Core 7 is coming in November with the debut of .NET 7. It continues the company's move from the old Entity Framework scheme that was part of the Windows-only .NET Framework, which was supplanted by the cross-platform, open source "Core" lineup, which itself subsequently dropped the "Core" designation for just .NET 6, .NET 7 and so on.
EF6 is the last vestige of the .NET Framework-compatible EF versions, actually supporting EF Core as well as .NET Framework.
Here's how Microsoft's Jeremy Likness explained the situation in a Jan. 3 blog post announcing the guide for porting from EF6 to EF Core:
EF6 was officially released nearly a decade ago in October 2013. The next major Entity Framework release was in June of 2016 when EF Core 1.0 was introduced as a complete rewrite for the modern .NET Core platform. One final, major update to EF6 happened with the release of a new version compatible with .NET Core. The latest version, capable of running on both the .NET Framework and .NET Core, was intended to make it easier for customers to transition to the .NET Core platform. With the option of EF6 on .NET Core, customers can move their existing EF6 codebase onto .NET Core first before migrating their EF6 code to EF Core. Although the initial versions of EF Core lacked support for many popular EF6 capabilities, the gap has narrowed significantly with every release.
With that, the senior program manager for .NET Data, .NET, introduced the new Port from EF6 to EF Core guidance, which he said benefitted data developers with the ability to:
- Take advantage of the ongoing performance improvements in EF Core. For example, one customer who migrated from EF6 to EF Core 6 saw a 40x reduction in use of a heavy query due to the query splitting feature. Many customers report enormous performance gains simply by moving to the latest EF Core.
- Use new features in EF Core. There will be no new features added to EF6. All of the new functionality, for example the Azure Cosmos DB provider and DbContextFactory, will only be added to EF Core. For a full comparison of EF6 to EF Core, including several features exclusive to EF Core, see: Compare EF Core & EF6.
- Modernize your application stack by using dependency injection and seamlessly integrate your data access with technologies like gRPC and GraphQL.
Prior to that guidance, Likness last month announced the plan for Entity Framework Core 7 (also called EF Core 7 or just EF 7). The evolving plan (not a "commitment") is being tracked by an issue in the project's GitHub repo.
Themes of the plan include highly requested features, .NET platforms and ecosystem, clear path forward from EF6 and performance.
For the first theme about highly requested features, for example, these items are listed:
Likness said a few items to note about the plan include:
- EF Core 7 is the next release after EF Core 6 and is currently scheduled for release in November 2022 at the same time as .NET 7. There are no plans for an EF Core 6.1 release.
- EF7 will align with the .NET support policy and will therefore will not be a long-term support (LTS) release.
- EF7 currently targets .NET 6. This may be updated to .NET 7 as we near the release. EF7 does not target any .NET Standard version; for more information see the future of .NET Standard. EF7 will not run on .NET Framework.
Developers were still commenting on the plan at the time of this writing. While many comments on the Likness post and the plan guidance expressed kudos, two recent comments expressed 😞 that a couple issues didn't make it into EF7, calling for more votes:
- Improve usability of global query filters #21459
- SQLite full-text search support #4823
Likness said the best way to indicate the importance of an issue is to vote (👍) for that issue on GitHub. "This data will then feed into the planning process for the next release," he said.
Currently the issue with the most 👍 votes is: "Map JSON values stored in database to EF properties," opened more than six years ago.
David Ramel is an editor and writer for Converge360.