What's new in EF Core 6
I'm compiling information for our next Adelaide .NET User Group meetup which is focusing on the launch of .NET 6 and Visual Studio 2022.
EF Core 6 is the next version of Entity Framework - aka Entity Framework Core 6. Don't confuse this with the old 'Entity Framework 6' (the one you might have used with legacy .NET Framework applications)!
In January 2021, the major themes planned for Entity Framework Core 6 were outlined:
- Highly requested features
- Performance
- Migrations and deployment
- Improve existing features and fix bugs
- .NET integration
- Experiments and investigations
The blog post went into a bit more detail under each of these headings as to what each might entail.
In addition, the plan for Entity Framework Core 6.0 is also published on Microsoft Docs.
Preview 1
UnicodeAttribute
PrecisionAttribute
EntityTypeConfigurationAttribute
- Translate
ToString
on SQLite EF.Functions.Random
- Support for SQL Server sparse columns
- In-memory database: validate required properties are not null
- Improved SQL Server translation for
IsNullOrWhitespace
- Database comments are scaffolded to code comments
- Microsoft.Data.Sqlite
- Savepoints API
- Command timeout in the connection string
Preview 2
- Preserve synchronization context in
SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with
System.Linq.Async
- More flexible free-text search
Preview 3
No blog post for this release. See GitHub issue list for actual changes included.
Preview 4
- The runtime perf push
- Pooling and recycling,
DbContext
and beyond - Logging suppression
- Opting out of thread-safety checks
Preview 5
- Compiled models dramatically reduce startup time for your application
- The models are generated (similar to how migrations are) so they should be refreshed whenever your model changes.
- Some features are not currently supported by compiled models, so be aware of the limitations when you try them out.
Preview 6
- Support for 64-bit identity seed values
- Support for new BCL
DateOnly
andTimeOnly
structs for SQLite - Uniquify and validate check constraint names
- Pre-convention model configuration
- The items on this list
Preview 7
- Migration bundles - The migration bundle is a self-contained executable with everything needed to run a migration
There was also an additional post highlighting improvements to the Azure Cosmos DB Provider.
Release Candidate 1
- EF Core 6.0 supports creating and modifying temporal tables mapped to entity types