SQL Server temporal tables and JSON columns: Entity Framework Core 6.0 plans laid bare

SQL Server temporal tables and JSON columns: Entity Framework Core 6.0 plans laid bare

It’s the season of planning the year ahead, so with 11 months to go until the next release, the team behind Microsoft’s object-database mapper, Entity Framework Core, got busy sketching out version 6.0 of the project. 

The result is now available in the form of a roadmap, meant to give developers a rough idea of what Microsoft will work on in the next couple of months.

First among the things to tackle are a number of highly requested features, namely SQL Server temporal tables, JSON columns, and ColumnAttribute.Order. The 6.0 release is planned to allow the creation of temporal tables via Migrations that can be queried through LINQ, so that there’s a way to query data other by most recent.

Meanwhile JSON columns are meant to make connecting with a larger variety of databases easier, since it will facilitate the implementation of JSON support “by any database provider”. To start with, the EF team plans to come up with support for SQL Server and SQLite, while also updating implementations for Npgsql and Pomelo MySQL to keep them working.

Alongside new features, Microsoft also wants to improve upon some of the existing elements, such as value objects or the Cosmos database provider, for which it is currently collecting votes to make sure work is invested in the right places. 

The EF team also intends to allow applications to hook into and change model building conventions, fix query issues, and get rid of ‘“all outstanding non-blocked bugs”.

Performance is also something the team wants to look into, which is why they’ll likely start with improving their performance test infrastructure and add some new tests while they’re at it. Another approach they’re thinking about is offering compiled models, which is meant to reduce both startup time and improve performance when accessing a model. 

This however might need lots of development resources, which might be one of the reasons why Microsoft isn’t too hopeful it can finish adjustments for platforms that don’t allow dynamic compilation in time for the 6.0 release.

Despite the timeframe, the EF team is adamant about using the current release cycle to experiment a bit and investigate ways to improve the way GraphQL can be used with .NET. Another area of investigation is the ways in which a SQL Server driver could benefit from current .NET features. This doesn’t mean it wants to step away from Microsoft.Data.SqlClient, the team notes, but the complex codebase of the component means it’s hard to discern whether using new .NET Core features would bring any improvements.

EF Core 6.0 is supposed to land in November along with .NET 6, which is planned to be a long-term support release. What the final product will look like remains to be seen, since the team has been keen to note the released roadmap shouldn’t be seen as a commitment, but rather an initial sketch to be adjusted as needed.