Entity Framework Biweekly Status Updates (2021)
ajcvickers opened this issue · 21 comments
Biweekly status updates for 2022
Expand to see additional information from the end of 2021...
This issue contains status updates from the Entity Framework team to provide insight into what we are focused on, progress made, and other interesting highlights of current work.
More Information
Broader information on EF Core planning can be found in the EF Core roadmap.
Use GitHub queries to find full details of:
- Issues fixed for EF Core 6.0.0
- Issues fixed for EF Core 6.0.1
- Issues fixed for EF Core 6.0.2 but not yet shipped
- Issues fixed for EF Core 5.0.0
- Issues fixed for EF Core 5.0.1
- Issues fixed for EF Core 5.0.2
- Issues fixed for EF Core 5.0.3
- Issues fixed for EF Core 5.0.4
- Issues fixed for EF Core 5.0.5
- EF Core 5.0.6 contains only dependency updates
- EF Core 5.0.7 contains only dependency updates
- Issues fixed for EF Core 5.0.8
- Issues fixed for EF Core 5.0.9
- EF Core 5.0.10 contains only dependency updates
- Issues fixed for EF Core 5.0.11
- Issues fixed for EF Core 5.0.12
- EF Core 5.0.13 contains only dependency updates
- Issues fixed for EF Core 3.1.0
- Issues fixed for EF Core 3.1.1
- EF Core 3.1.2 contains only dependency updates
- Issues fixed for EF Core 3.1.3
- Issues fixed for EF Core 3.1.4
- EF Core 3.1.5 contains only dependency updates
- Issues fixed for EF Core 3.1.6
- Issues fixed for EF Core 3.1.7
- EF Core 3.1.8 contains only dependency updates
- Issues fixed for EF Core 3.1.9
- Issues fixed for EF Core 3.1.10
- Issues fixed for EF Core 3.1.11
- Issues fixed for EF Core 3.1.12
- EF Core 3.1.13 contains only dependency updates
- Issues fixed for EF Core 3.1.14
- EF Core 3.1.15 contains only dependency updates
- EF Core 3.1.16 contains only dependency updates
- EF Core 3.1.17 contains only dependency updates
- EF Core 3.1.18 contains only dependency updates
- EF Core 3.1.19 contains only dependency updates
- EF Core 3.1.20 contains only dependency updates
- EF Core 3.1.21 contains only dependency updates
- EF Core 3.1.22 contains only dependency updates
- Issues fixed for EF Core 3.0.0
Please note that there is never a guarantee that an issue will be fixed in its assigned release. Re-evaluation of the plan throughout the release cycle sometimes results in issues being pushed out to a later release.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
January 14, 2021
Expand to see status from this week...
Highlights
We're back with biweekly updates for 2021!
Front and center this week is the plan for EF Core 6.0!
- SQL Server temporal tables
- JSON columns
- Performance
- Compiled models
- Migrations bundles
- EF6 query parity
Plus much more!
This plan is not set-in-stone and can change based on feedback, so let us know what you think by commenting on this issue.
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021.
The EF Core 6.0 Plan is available publicly in our documentation. Feedback is greatly appreciated as always. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level area for EF Core 6.0 is linked in the table below together with its current high-level status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | Not started |
JSON columns | Not started | |
ColumnAttribute.Order | Not started | |
Performance | Infrastructure and tests | Not started |
Compiled models | Not started | |
TechEmpower Fortunes | Not started | |
Linker/AOT | Not started | |
Migrations and deployment | Migrations bundles | Not started |
Managing migrations | Not started | |
Improve existing features | EF6 query parity | Not started |
Value objects | Not started | |
Cosmos database provider | Not started | |
Public model conventions | Not started | |
Zero bug balance | In-progress | |
.NET integration | Enhancements to System.Data | In-progress |
Enhancements to Microsoft.Data.Sqlite | In-progress | |
Nullable reference types | In-progress | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 5.0.2
The latest patch release of EF Core 5.0 is available on NuGet now. This release builds on all the features shipped in EF Core 5.0.1 with 12 important bug fixes.
EF Core 3.1.11
EF Core 3.1.11 is available on NuGet now. This is a patch release of containing only critical bug fixes.
Community Standups
In case you missed it, check out the latest EF community standup in which we share and discuss the results of the recent Entity Framework survey.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
Pull requests merged in the last few weeks
Community contributions
- @RaymondHuy implemented an attribute for configuring precision and scale
- @KaloyanIT contributed a fix to scaffold IsFixedLength() instead of IsFixedLength(true)
- @RaymondHuy added EF.Functions.IsNumeric
- @RaymondHuy added EF.Functions.Random
- @carlreinke fixed unexpected null in principal columns of foreign key
- @umitkavala fixed NullReferenceException when trying to seed a keyless entity
- @pkellner fixed URL to github simple logging project
- @khalidabuhakmeh fixed a typo in the query docs
- @SimonCropp added EfFluentValidation, LocalDb, add Verify.EntityFramework to extensions list
- @khellang added EntityFrameworkCore.Sqlite.NodaTime to the extensions list
- @ErikEJ added ErikEJ.EntityFrameworkCore.SqlServer.Dacpac and ErikEJ.EntityFrameworkCore.DgmlBuilder to the extensions list
- @Shirasho fixed a typo in the context config docs
- @dennisseders fixed incorrect spelling
- @DickBaker updated some benchmarks
- @SimonCropp updated dependencies in samples
- @dennisseders fixed trailing white spaces
- @gurustron fixed a typo
- @dennisseders changed setup to set up
Many thanks to all our contributors!
EF Core
- Documentation
- Add OperationCancellationException docs everywhere
- Add more model building breaking changes
- Add more M2M configuration samples
- Add lack of support for collections of primitive types as a limitation
- Reference 5.0 API using xref
- Performance guidelines
- Improvements to value comparer docs
- Added note about deprecation of ExecuteSqlCommand/Async
- Rearrange the 5.0 what's new page
- Add note on clustered indexes being one-per-table
- Document index data annotation
- Added breaking change for required decimal facets
- Change tracker docs
- Add .NET Standard 2.1 support to breaking changes
- Add documentation for query null semantics
- Update plan to do NRT annotations for 6.0
- Improvements to value generation docs
- Updates for EF Core 6.0
- Re-write cascade delete documentation
- Testing
- Run SqlServer tests on Ubuntu in Helix
- Add Include tests with smaller datasets
- Re-enable Cosmos concurrency tests
- Re-enable flaky CI tests on SqlServer on Ubuntu
- Query/Test: figure out how to represent shadow properties in expected result queries
- Query/OData: add test support for models requiring non-standard routing (e.g. "Order Details" table in Northwind)
- Fix build failures in SqlServer Ubuntu run
- Testing for ASP.NET Core Identity model
- Add tests for IdentityServer model and queries
- Disable SqlServer functional tests on Helix Ubuntu Docker
- Updates many-to-many change tracking tests to work with generated key values
- Fix non-deterministic test
- Removing references to #12591 from the procedural test generation
- Refactor QueryBugsTest to use a non-provider specific way to configure the contexts
- Query
- (3.1.12) Query: Cosmos: Generate enum literal/parameter correctly
- (5.0.3) InMemory: Decompose join condition which uses equals for comparison
- (5.0.3) Fix to #23617 - IQueryable.All evaluate to false with predicate _ => true
- (5.0.3) InMemory: Wrap composite key selector for owned type in AnonymousObject
- (5.0.3) InMemory: Skip over AsSingleQuery method
- (5.0.3) TryRewriteEntityEquality and NotEqual comparison of CompositePrimaryKey
- SqlServer: Translate ArrayAccess/First over byte arrays
- !boolean in query should convert to boolean == false rather than boolean != true where possible
- Change function mapping HasTranslation args from IReadOnlyCollection to IReadOnlyList
- Allow schema-less UDFs to not be built-in
- TryRewriteEntityEquality and NotEqual comparison of CompositePrimaryKey
- Miscellaneous
- (5.0.3) Fix event counter issues and add test patterns for event source testing
- Replace NotImplementedException with NotSupportedException
- Replace shadow entities with property bag entity types
- Bump Microsoft.Azure.Cosmos from 3.15.0 to 3.15.1
- Bump Microsoft.Data.SqlClient from 2.1.0 to 2.1.1
- Fix benchmarks
- Add MemoryDiagnoser and OpsPerSecond back to benchmark config
- Annotate Storage for nullability
- Model building
- (5.0.3) Add column name null checks in default FK and PK name calculation
- (5.0.3) Use IUpdateEntry.EntityState instead of ModificationCommand.EntityState for entities using table splitting
- (5.0.3) Flow through the column types in MigrationBuilder.InsertData
- Fix relational overrides validation for non-inheritance case
- Migrations
- Change tracking
- SaveChanges
Microsoft.Data.Sqlite
- Target .NET Standard 2.0 again
- Handle composite keys in SqliteDataReader.GetStream
- Use multi-thread mode
- Handle eponymous virtual tables in GetSchemaTable
- Support GetSchema("ReservedWords")
Builds to use
- The daily builds are the most up-to-date available.
- Previews: we expect the first preview of EF Core 6.0 to be available in early 2021.
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.2
- LTS: EF Core 3.1.11
Releases
See EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
January 28, 2021
Expand to see status from this week...
Highlights
We have branched for EF Core 6.0 preview 1:
- 63 enhancements; 32 bugs fixed
- 16 community contributions including:
- String.Concat overloads (By @wmeints)
- EntityTypeConfigurationAttribute (By @KaloyanIT)
- UnicodeAttribute (By @RaymondHuy)
- PrecisionAttribute (By @RaymondHuy)
- Validate required values for in-memory database (By @fagnercarvalho)
We expect to ship preview 1 in mid-February. Can't wait? Use the daily builds now.
Meanwhile:
- Work on the compiled model is in progress. For example, support for runtime model annotations has been merged.
- Work is beginning on support for SQL Server Temporal Tables.
- New value converter docs.
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021.
The EF Core 6.0 Plan is available publicly in our documentation. Feedback is greatly appreciated as always. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level area for EF Core 6.0 is linked in the table below together with its current high-level status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | In-progress |
JSON columns | Not started | |
ColumnAttribute.Order | Not started | |
Performance | Infrastructure and tests | Not started |
Compiled models | In-progress | |
TechEmpower Fortunes | Not started | |
Linker/AOT | Not started | |
Migrations and deployment | Migrations bundles | Not started |
Managing migrations | Not started | |
Improve existing features | EF6 query parity | Not started |
Value objects | Not started | |
Cosmos database provider | Not started | |
Public model conventions | Not started | |
Zero bug balance | In-progress | |
.NET integration | Enhancements to System.Data | In-progress |
Enhancements to Microsoft.Data.Sqlite | In-progress | |
Nullable reference types | In-progress | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 5.0.2
The latest patch release of EF Core 5.0 is available on NuGet now. This release builds on all the features shipped in EF Core 5.0.1 with 12 important bug fixes.
EF Core 3.1.11
EF Core 3.1.11 is available on NuGet now. This is a patch release that contains only critical bug fixes.
Community Standups
In the last latest EF Core Community Standup we welcomed special guest @jmezach to discuss MSBuild.Sdk.SqlProj, a new open source project that allows you to build SQL Server Database Projects (.sqlproj) using the new SDK-style projects cross-platform.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
Pull requests merged in the last two weeks
Community contributions
- @wmeints added support for three and four string argument versions of System.String.Concat
- @tomkaa fixed incorrect xml doc comment on RollbackTransactionAsync
- @cgrimes01 fixed a minor typo - replace verses with versus
- @Geoff1900 fixed grammar by adding definite/indefinite articles
Many thanks to all our contributors!
EF Core
- Documentation
- Remove duplicate code blocks
- Removed unnecessary cast to object
- Updates to value converter docs
- Add Xamarin caveat that not linking may result in store rejection
- Document that implicitly chosen type for join table may change
- Fix: Unescaped HTML-like element in table
- Samples code cleanup and verification that all samples run
- Use colons consistently for connection strings in UserSecrets
- Model building
- Miscellaneous
- Testing
- Query
- Migrations
- Change tracking
- SaveChanges
Builds to use
- The daily builds are the most up-to-date available.
- Previews: we expect the first preview of EF Core 6.0 to be available in early 2021.
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.2
- LTS: EF Core 3.1.11
Releases
See EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
February 11, 2021
Expand to see status from this week...
Highlights
Released this week:
Any day now:
- EF Core 6.0 preview 1 with 61 enhancements; 32 bugs fixed
Meanwhile, the team is heads-down working on new features for EF Core 6.0, including:
- Compiled models
- SQL Server Temporal Tables
- Performance infrastructure and tests
- Ongoing GraphQL investigations
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021.
The EF Core 6.0 Plan is available publicly in our documentation. Feedback is greatly appreciated as always. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level area for EF Core 6.0 is linked in the table below together with its current high-level status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | In-progress |
JSON columns | Not started | |
ColumnAttribute.Order | Not started | |
Performance | Infrastructure and tests | In-progress |
Compiled models | In-progress | |
TechEmpower Fortunes | Not started | |
Linker/AOT | Not started | |
Migrations and deployment | Migrations bundles | Not started |
Managing migrations | Not started | |
Improve existing features | EF6 query parity | Not started |
Value objects | Not started | |
Cosmos database provider | Not started | |
Public model conventions | Not started | |
Zero bug balance | In-progress | |
.NET integration | Enhancements to System.Data | In-progress |
Enhancements to Microsoft.Data.Sqlite | In-progress | |
Nullable reference types | In-progress | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 5.0.3
The latest patch release of EF Core 5.0 is available on NuGet now. This release builds on all the features shipped in EF Core 5.0.3 with 14 important bug fixes.
EF Core 3.1.12
EF Core 3.1.12 is available on NuGet now. This is a patch release that contains only critical bug fixes.
Community Standups
In the last latest EF Core Community Standup we welcomed special guest @Giorgi to discuss EntityFramework.Exceptions, an open source EF Core extension that injects specific exception types for specific error cases in a database agnostic manner.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
Pull requests merged in the last two weeks
Community contributions
- @vincent1405 corrected the savepoints over MARS exception message
- @Marusyk fixed a mistake in SqlUnaryExpression::Print
- @Ali-YousefiTelori improved the exception message when an entity type was not found
- @garyng fixed some typos in #3045, #3046, and #3047
- @mefateah fixed a typo
- @AndrewKitu fixed some translation issues
- @ardalis fixed a typo
Many thanks to all our contributors!
EF Core
- Documentation
- Miscellaneous
- Query
- Model building
Builds to use
- The daily builds are the most up-to-date available.
- Previews: we expect the first preview of EF Core 6.0 to be available any day now.
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.3
- LTS: EF Core 3.1.12
Releases
See EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
February 25, 2021
Expand to see status from this week...
Highlights
EF Core 6.0 preview 1 is on Nuget now!. Details below.
The team is working on TechEmpower Fortunes performance:
- Starting point: EF Core at 74.5% of Dapper performance
- Currently: EF Core at 86.3% of Dapper performance
- Improvement in EF Core perf: 15.8%
In addition, we're continuing work on
Plus, as always, great contributions from the community.
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021.
The EF Core 6.0 Plan is available publicly in our documentation. Feedback is greatly appreciated as always. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level area for EF Core 6.0 is linked in the table below together with its current high-level status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | In-progress |
JSON columns | Not started | |
ColumnAttribute.Order | Not started | |
Performance | Infrastructure and tests | In-progress |
Compiled models | In-progress | |
TechEmpower Fortunes | In-progress | |
Linker/AOT | Not started | |
Migrations and deployment | Migrations bundles | Not started |
Managing migrations | Not started | |
Improve existing features | EF6 query parity | Not started |
Value objects | Not started | |
Cosmos database provider | Not started | |
Public model conventions | Not started | |
Zero bug balance | In-progress | |
.NET integration | Enhancements to System.Data | In-progress |
Enhancements to Microsoft.Data.Sqlite | In-progress | |
Nullable reference types | In-progress | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 6.0 preview 1
EF Core 6.0 preview 1 is on NuGet now!
New features in preview 1 include:
- 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
For Microsoft.Data.SQLite 6.0 preview 1:
The .NET Blog announcement has full details and installation instructions.
EF Core 5.0.3
The latest patch release of EF Core 5.0 is available on NuGet now. This release builds on all the features shipped in EF Core 5.0.3 with 14 important bug fixes.
EF Core 3.1.12
EF Core 3.1.12 is available on NuGet now. This is a patch release that contains only critical bug fixes.
Community Standup: Perf tuning
In the last latest EF Core Community Standup we welcomed special guest @JonPSmith who shared the steps he took to tweak EF Core performance and scale an eCommerce books Books app from 700 books to half million a million books.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
Pull requests merged in the last two weeks
Community contributions
- @yesmey fixed batch inserts using with different types on a sql_variant column
- @yesmey contributed minor StringBuilder cleanup in QuerySqlGenerator
- @Giorgi added DbUpdateException constructors that accept list of EntityEntry for Entries property
- @hez2010 fixed infinite recursive generics
- @Marusyk added Cosmos translator for ToLower method which map to LOWER built-in function
- @Marusyk added Cosmos translator for ToUpper method which map to UPPER built-in function
- @joakimriedel contributed fix to keep parameter names for inlined queries
- @mrlife fixed a typo
- @GitHubPang fixed a typo
- @Giorgi added EntityFramework.Exceptions to the extensions list. Also: #3107.
- @Oxyrus removed a duplicate 'as'
Many thanks to all our contributors!
EF Core
- Compiled model
- Move ITypeBase and IEntityType extension methods to the interfaces
- Move IAnnotatable and IModel extension methods to the interfaces
- Move IProperty and IPropertyBase extension methods to the interfaces
- Move IIndex, INavigation and related extension methods to the interfaces
- Move IRelationalModel extension methods to the interfaces
- TechEmpower Fortunes
- Documentation
- Nullable reference types
- Testing
- Query
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 6.0 preview 1
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.3
- LTS: EF Core 3.1.12
Releases
See EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
March 11, 2021
Expand to see status from this week...
Highlights
EF Core 6.0 preview 2 is on NuGet now! Details below.
The team is continuing to work on:
- Compiled models. In particular, there is now a PR out for the read-optimized model implementation.
- SQL Server temporal tables
- Nullable reference types. We're now close to using NRTs throughout the EF Core code.
- TechEmpower Fortunes. More gains coming soon!
- Also, we have merged a major PR for in-memory queries which fixed 15 in-memory query bugs.
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021.
The EF Core 6.0 Plan is available publicly in our documentation. Feedback is greatly appreciated as always. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level area for EF Core 6.0 is linked in the table below together with its current high-level status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | In-progress |
JSON columns | Not started | |
ColumnAttribute.Order | Not started | |
Performance | Infrastructure and tests | In-progress |
Compiled models | In-progress | |
TechEmpower Fortunes | In-progress | |
Linker/AOT | Not started | |
Migrations and deployment | Migrations bundles | Not started |
Managing migrations | Not started | |
Improve existing features | EF6 query parity | Not started |
Value objects | Not started | |
Cosmos database provider | Not started | |
Public model conventions | Not started | |
Zero bug balance | In-progress | |
.NET integration | Enhancements to System.Data | In-progress |
Enhancements to Microsoft.Data.Sqlite | In-progress | |
Nullable reference types | In-progress | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 6.0 preview 2
EF Core 6.0 preview 2 is on NuGet now!
New features in preview 2 include:
- Preserve synchronization context in SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with System.Linq.Async
- More flexible free-text search
Preview 2 also includes the following new features from 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 6.0 preview 2
Microsoft.Data.SQLite 6.0 preview 2 is on NuGet now!
Preview 2 does not have any significant new features. However, preview 2 includes the following new features from preview 1:
EF Core 5.0.4
The latest patch release of EF Core 5.0 is available on NuGet now. This patch fixes 2 important bug fixes in the 5.0 release.
EF Core 3.1.13
EF Core 3.1.13 is available on NuGet now. This patch release updates dependencies only and contains no code changes.
Community Standup: Ask Julie Anything
In the last latest EF Core Community Standup we welcomed special guest @julielerman for an ask-me-anything session where we discussed everything EF.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
Pull requests merged in the last two weeks
Community contributions
- @Marusyk added translator for Substring method which map to Cosmos SUBSTRING built-in functions
- @Marusyk documented InvalidOperationException for MaxAsync method
- @Marusyk added translator for TrimStart/TrimEnd/Trim
- @teo-tsirpanis updated the supported versions documentation
- @mrlife added a missing word
- @mrlife added a missing word
- @Varorbc updated references to EF Core
- @alexpotter10 Fixed casing for consistency
- @jing8956 updated reference to deprecated MySql.Data.EntityFrameworkCore
Many thanks to all our contributors!
EF Core
- Miscellaneous
- (3.1.14) Clear disabled package sources
- (5.0.5) Clear disabled package sources
- Bump Microsoft.Data.SqlClient from 2.1.1 to 2.1.2
- Bump Microsoft.Azure.Cosmos from 3.16.0 to 3.17.0
- Remove bad DebugAssert causing a stack overflow
- More nullability annotations
- Enable nullable on the project
- (Perf) Allow providers to override ambient transaction access
- Documentation
- Query
- (3.1.14) Use stronger reflection in Queryable/Enumerable methods
- (5.0.5) Use stronger reflection in Queryable/Enumerable methods
- InMemory: Preserve type to bool when applying predicate on a grouping
- InMemory: Improve indexing in server expression
- Consider updating select expression identifiers when projecting a subset of column and adding distinct
- (Perf) Recycling relational and ADO.NET objects in query pipeline
- Odata $filter and $orderby not working with Select to new DTO for one to one relationship
- Change tracking
- Migrations
- Tooling
- Scaffolding
- SaveChanges
Microsoft.Data.Sqlite
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 6.0 preview 2
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.4
- LTS: EF Core 3.1.13
Releases
See EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
March 25, 2021
Expand to see status from this week...
Highlights
- F# - Community package for F# design-time support
- NodaTime - Community packages for SQL Server, SQLite, and PostgreSQL
- NRTs - All EF Core code now uses C# nullable reference types
- Compiled model - The optimized model is now used by convention
- Query - Lots of progress on query bugs and EF6 query parity
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021.
The EF Core 6.0 Plan is available publicly in our documentation. Feedback is greatly appreciated as always. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level area for EF Core 6.0 is linked in the table below together with its current high-level status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | In-progress |
JSON columns | Not started | |
ColumnAttribute.Order | Not started | |
Performance | Infrastructure and tests | In-progress |
Compiled models | In-progress | |
TechEmpower Fortunes | In-progress | |
Linker/AOT | Not started | |
Migrations and deployment | Migrations bundles | Not started |
Managing migrations | Not started | |
Improve existing features | EF6 query parity | In-progress |
Value objects | Not started | |
Cosmos database provider | Not started | |
Public model conventions | Not started | |
Zero bug balance | In-progress | |
.NET integration | Enhancements to System.Data | In-progress |
Enhancements to Microsoft.Data.Sqlite | In-progress | |
Nullable reference types | Done | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 6.0 preview 2
EF Core 6.0 preview 2 is on NuGet now!
New features in preview 2 include:
- Preserve synchronization context in SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with System.Linq.Async
- More flexible free-text search
Preview 2 also includes the following new features from 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 6.0 preview 2
Microsoft.Data.SQLite 6.0 preview 2 is on NuGet now!
Preview 2 does not have any significant new features. However, preview 2 includes the following new features from preview 1:
EF Core 5.0.4
The latest patch release of EF Core 5.0 is available on NuGet now. This patch fixes 2 important bug fixes in the 5.0 release.
EF Core 3.1.13
EF Core 3.1.13 is available on NuGet now. This patch release updates dependencies only and contains no code changes.
Community Standup: Database First with the EF Power Tools
In the last latest EF Core Community Standup we welcomed special guest @ErikEJ who showed new features of the EF Core Power Tools for reverse engineering, renaming, multiple DbContexts in the same project, and more!
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
Pull requests merged in the last two weeks
Community contributions
- @Strepto added Caching to SqliteDataRecord for Ordinal and Name
- @Marusyk documented InvalidOperationException for MinAsync
- @cincuranet added explicit order in case the database returns the records in different order
- @yesmey implemented warning for when Orderby is silently ignored using Distinct
- @carlreid added default options on ToDebugString
- @MartinWestminster Added an xref
- @jeremycook added scaffolding examples for --no-onconfiguring
- @cgrevil fixed a typo
- @AkinSabriCam added missing scope.Complete()
- @vytotas fixed plural grammar
- @OKTAYKIR added EFCoreAuditing
- @mrlife updated backing field code
- @mariuz updated deprecated and archived Firebird provider
- @OOberoi fixed a typo
Many thanks to all our contributors!
EF Core
- Query
- (5.0.5) Warn for walking back up the Include tree
- Update SQL baselines
- Re-organize SelectExpression
- Add TableReferenceExpression as a bridge to ColumnExpression for referential integrity
- Update explicit throw for navigation ignored warning
- Add regression tests for correlated collection and GroupBy/Distinct
- Update column references in pending collections
- Update table references for SelectExpression.Update method
- Nullable reference types
- Documentation
- Miscellaneous
- Compiled model
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 6.0 preview 2
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.4
- LTS: EF Core 3.1.13
Releases
See EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
April 8, 2021
Expand to see status from this week...
Highlights
EF Core 6.0 preview 3 is on NuGet now!
The team is continuing to work on:
- The first PR for SQL Server Temporal Tables is out!
- Runtime compiled model generator
- Many query and change tracking bug fixes
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021.
The EF Core 6.0 Plan is available publicly in our documentation. Feedback is greatly appreciated as always. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level area for EF Core 6.0 is linked in the table below together with its current high-level status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | In-progress |
JSON columns | Not started | |
ColumnAttribute.Order | Not started | |
Performance | Infrastructure and tests | In-progress |
Compiled models | In-progress | |
TechEmpower Fortunes | In-progress | |
Linker/AOT | Not started | |
Migrations and deployment | Migrations bundles | Not started |
Managing migrations | Not started | |
Improve existing features | EF6 query parity | In-progress |
Value objects | Not started | |
Cosmos database provider | Not started | |
Public model conventions | Not started | |
Zero bug balance | In-progress | |
.NET integration | Enhancements to System.Data | In-progress |
Enhancements to Microsoft.Data.Sqlite | In-progress | |
Nullable reference types | Done | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 6.0 preview 3
EF Core 6.0 preview 3 is on NuGet now!
Preview 3 does not have any significant new features. However, preview 2 includes the following new features earlier previews:
- Preserve synchronization context in SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with System.Linq.Async
- More flexible free-text search
- 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 6.0 preview 3
Microsoft.Data.SQLite 6.0 preview 3 is on NuGet now!
Preview 3 does not have any significant new features. However, preview 2 includes the following new features earlier previews:
EF Core 5.0.5
The latest patch release of EF Core 5.0 is available on NuGet now. This patch fixes 4 important bugs in the 5.0 release.
EF Core 3.1.14
EF Core 3.1.14 is available on NuGet now. This patch fixes an important bug in the 3.1 release.
Community Standup: Azure SQL
In the last latest EF Core Community Standup we welcomed special guest Davide Mauri for an interactive discussion about how Azure SQL helps cloud developers create cloud native solutions. From simple REST APIs to scalable backends, Azure SQL provides the required flexibility, scalability, and features to simplify the developer's life. Davide covers topics ranging from JSON support and CI/CD to column-store, geospatial and graph models.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
Pull requests merged in the last two weeks
Community contributions
- @jaliyaudagedara fixed some formatting
- @andrejs86 fixed a typo
- @FarshanAhamed fixed a typo
- @uncheckederror updated docs for ForSqliteHasSrid
- @cincuranet updated Firebird information to show EFCore 5.0 support
- @ErikEJ updated DevArt providers for EF Core 5
- @lexkazakov fixed code highlighting
Many thanks to all our contributors!
EF Core
- Change tracking
- Type mapping
- Miscellaneous
- Query
- Model building
- Cosmos
- Documentation
Microsoft.Data.Sqlite
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 6.0 preview 3
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.5
- LTS: EF Core 3.1.14
Releases
See EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
April 22, 2021
Expand to see status from this week...
Highlights
TechEmpower
EF Core is now at 93.5% of Dapper perf on TechEmpower Fortunes!
- EF Core 6.0 is 33.1% faster than EF Core 5.0
- However, platform and Npgsql changes make Dapper 6.0% faster in the same period
So everything is faster, and EF Core is still catching Dapper!
Learn to contribute!
Do you want to contribute to EF Core but are uncertain where to begin? We’re here to help! In the latest episode of the EF Core Community Standup, we implemented an EF Core feature live. This includes everything from forking the repo, adding the code and related tests, and generating the pull request.
Other work
EF Core 6.0 preview 3 is on NuGet now!
The team is continuing to work on:
- SQL Server Temporal Tables
- Compiled model
- SQLite connection pooling
- Query fixes and enhancements
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021.
The EF Core 6.0 Plan is available publicly in our documentation. Feedback is greatly appreciated as always. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level area for EF Core 6.0 is linked in the table below together with its current high-level status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | In-progress |
JSON columns | Not started | |
ColumnAttribute.Order | Not started | |
Performance | Infrastructure and tests | In-progress |
Compiled models | In-progress | |
TechEmpower Fortunes | In-progress | |
Linker/AOT | Not started | |
Migrations and deployment | Migrations bundles | Not started |
Managing migrations | Not started | |
Improve existing features | EF6 query parity | In-progress |
Value objects | Not started | |
Cosmos database provider | Not started | |
Public model conventions | Not started | |
Zero bug balance | In-progress | |
.NET integration | Enhancements to System.Data | In-progress |
Enhancements to Microsoft.Data.Sqlite | In-progress | |
Nullable reference types | Done | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 6.0 preview 3
EF Core 6.0 preview 3 is on NuGet now!
Preview 3 does not have any significant new features. However, preview 2 includes the following new features earlier previews:
- Preserve synchronization context in SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with System.Linq.Async
- More flexible free-text search
- 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 6.0 preview 3
Microsoft.Data.SQLite 6.0 preview 3 is on NuGet now!
Preview 3 does not have any significant new features. However, preview 2 includes the following new features earlier previews:
EF Core 5.0.5
The latest patch release of EF Core 5.0 is available on NuGet now. This patch fixes 4 important bugs in the 5.0 release.
EF Core 3.1.14
EF Core 3.1.14 is available on NuGet now. This patch fixes an important bug in the 3.1 release.
Pull requests merged in the last two weeks
Community contributions
- @larsholm fixed a typo
- @ErikEJ added a FAQ answer
- @ptupitsyn fixed wording in collations-and-case-sensitivity.md
Many thanks to all our contributors!
EF Core
- Documentation
- Testing
- Query
- Type mapping
- Miscellaneous
- Logging
- Change tracking
- Model building
- Dependency updates
- Migrations
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 6.0 preview 3
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.5
- LTS: EF Core 3.1.14
Releases
See EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
May 6, 2021
Expand to see status from this week...
Highlights
- Continued updates on TechEmpower Fortunes performance
- Improved support for split query with non-collection Includes
- Compiled model and temporal table work is progressing well
- 17 community PRs merged
Community Standup: Triggers for EF Core
In the last latest EF Core Community Standup we welcomed special guest Koen Bekkenutte who introduced us to the EFCore.Triggered project and discussed its advantages and how it differs from domain events and database triggers. See how it is implemented and how the project uses EF Core's ChangeTracker and SaveChanges interception. As always, the EF Core team and Koen answer live Q&A.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021.
The EF Core 6.0 Plan is available publicly in our documentation. Feedback is greatly appreciated as always. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level area for EF Core 6.0 is linked in the table below together with its current high-level status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | In-progress |
JSON columns | Not started | |
ColumnAttribute.Order | Not started | |
Performance | Infrastructure and tests | In-progress |
Compiled models | In-progress | |
TechEmpower Fortunes | In-progress | |
Linker/AOT | Not started | |
Migrations and deployment | Migrations bundles | Not started |
Managing migrations | Not started | |
Improve existing features | EF6 query parity | In-progress |
Value objects | Not started | |
Cosmos database provider | Not started | |
Public model conventions | Not started | |
Zero bug balance | In-progress | |
.NET integration | Enhancements to System.Data | In-progress |
Enhancements to Microsoft.Data.Sqlite | In-progress | |
Nullable reference types | Done | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 6.0 preview 3
EF Core 6.0 preview 3 is on NuGet now!
Preview 3 does not have any significant new features. However, preview 2 includes the following new features earlier previews:
- Preserve synchronization context in SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with System.Linq.Async
- More flexible free-text search
- 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 6.0 preview 3
Microsoft.Data.SQLite 6.0 preview 3 is on NuGet now!
Preview 3 does not have any significant new features. However, preview 2 includes the following new features earlier previews:
EF Core 5.0.5
The latest patch release of EF Core 5.0 is available on NuGet now. This patch fixes 4 important bugs in the 5.0 release.
EF Core 3.1.14
EF Core 3.1.14 is available on NuGet now. This patch fixes an important bug in the 3.1 release.
Pull requests merged in the last two weeks
Community contributions
- @MattKomorcec added a missing word
- @riscie added a link to docs for updating the tools
- @SergerGood fixed duplicate words
- @SergerGood merged conditional ?: expression into conditional access
- @SergerGood added use of Debug.Fail
- @wdesgardin implemented case-insensitive SqliteDataReader
- @vonzshik fixed reference the 2021 weekly status update instead of 2020
- @SergerGood optimized using StringBuilder
- @SergerGood fixed using not readonly stuct with in modifier
- @vonzshik adding caching access to virtual properties
- @stevendarby added translations for string.Substring with one arg
- @michalczerwinski removed defensive copies
- @lauxjpn consolidated SQL syntax
- @michalczerwinski fixed bug translating bool to string
- @alexernest updated whatsnew.md to fix typo for SQL DATALENGTH function name
- @mguinness updated the Pomelo MySQL provider version
- @alireza-rezaee fixed a typo
Many thanks to all our contributors!
EF Core
- Query
- Add a test for Enum ICollection Contains
- Add a test for projecting outer columns
- Add a test for inheritance with Cast
- Implement split query for non-include collections
- Tests for IQueryable in subquery sometimes triggers validation
- Fix for TableValuedFunctionExpression with IsBuiltIn option
- Adding tests for bug with Take()
- Avoid pushdown on top level during split query
- Add regression test for query resolution
- InMemory: Index based bindings for projection
- Testing
- Miscellaneous
- Model building
- Documentation
- Performance
- DbContext
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 6.0 preview 3
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.5
- LTS: EF Core 3.1.14
Releases
See EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
May 27, 2021
Expand to see status from this week...
Highlights
- The plan for EF Core 6.0 has been updated:
- More Cosmos enhancements pulled in
- Some raw SQL and migrations work scoped out
- New community EFCore.VisualBasic package for VB scaffolding and migrations
- Blog post on performance improvements in preview 4
- Compiled model work is complete; join us in the next Community Standup to see it working
Upcoming Community Standup: Compiled Models
EF Core creates an internal model for entity types and their database mappings. This model is typically built once when the application starts. Starting with EF Core 6.0, it is now possible to instead build this model at compile time. This can reduce startup time by up to 67% for large models. Join us for the next EF Core Community Standup, where the team will introduce compiled models and demo their use.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021.
The EF Core 6.0 Plan is available publicly in our documentation. Feedback is greatly appreciated as always. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level area for EF Core 6.0 is linked in the table below together with its current high-level status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | In-progress |
JSON columns | Not started | |
ColumnAttribute.Order | Not started | |
Performance | Infrastructure and tests | Complete |
Compiled models | Complete | |
TechEmpower Fortunes | Complete | |
Linker/AOT | Not started | |
Migrations and deployment | Migrations bundles | Not started |
Managing migrations | Cut | |
Improve existing features | EF6 query parity | In-progress |
Value objects | In-progress | |
Cosmos database provider | Expanded | |
Public model conventions | Not started | |
Zero bug balance | In-progress | |
.NET integration | Enhancements to System.Data | In-progress |
Enhancements to Microsoft.Data.Sqlite | In-progress | |
Nullable reference types | Complete | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 6.0 preview 4
EF Core 6.0 preview 4 is on NuGet now!
Preview 4 contains much of the performance work done in relation to TechEmpower Fortunes, which is covered in a detailed performance blog post.
The following new features are also included in preview 4:
- Allow explicit temporary values that are stored in the entity instance
- Add trailing underscore to the backing field matching convention
Preview 4 also includes the following features earlier previews:
- Preserve synchronization context in SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with System.Linq.Async
- More flexible free-text search
- 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 6.0 preview 4
Microsoft.Data.SQLite 6.0 preview 4 is on NuGet now!
Preview 4 contains the following new features:
Preview 4 also includes the following features earlier previews:
EF Core 5.0.5
The latest patch release of EF Core 5.0 is available on NuGet now. This patch fixes 4 important bugs in the 5.0 release.
EF Core 3.1.14
EF Core 3.1.14 is available on NuGet now. This patch fixes an important bug in the 3.1 release.
Pull requests merged in the last three weeks
Community contributions
- @dannyjacosta updated "How To Contribute" doc to include video from EF Core team
- @michalczerwinski implemented query tagging with caller info
- @marodev did some code cleanup
- @ErikEJ added Tip about EF Core Power Tools
- @ErikEJ updated Jet provider to 3.1 and .NET Core support
Many thanks to all our contributors!
EF Core
- Documentation
- Miscellaneous
- Query
- Context pooling
- Model building
- Scaffolding
- Cosmos
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 6.0 preview 4
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.5
- LTS: EF Core 3.1.14
Releases
See EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
July 29, 2021
Expand to see status from this week...
Highlights
Biweekly updates are back! EF Core 6.0 preview 5 and preview 6 have shipped while we were gone. Some significant new features include:
Pre-convention model configuration
This feature allows the mapping for a given CLR type to be configured once, removing the need to configure every property of the type individually. For example, assume you always store properties of your enum type as strings in the database. Instead of configuring every enum property on every entity type, you can now override use ConfigureConventions
in your DbContext:
protected override void ConfigureConventions(ModelConfigurationBuilder configurationBuilder)
{
configurationBuilder.Properties<MyEnum>()
.HaveConversion<string>()
.HaveMaxLength(24);
}
As can be seen in this example, pre-convention configuration supports specifying a default value conversion for any property of a given type, which has been a highly requested feature since we introduced value conversions.
Compiled models
Compiling the EF Core model can dramatically reduce startup time for applications with many entity types. See the preview 5 blog post and the EF Core Community Standup for more information.
Support split queries for projections containing non-navigation collections
EF Core 5.0 introduced generation of multiple SQL queries from a single LINQ query. EF Core 6.0 can now also use this pattern in many cases involving projection of collections, bringing significant potential performance benefits.
Cuts
As we are approaching the release of EF Core 6.0, we re-evaluated the remaining work against the timeline and have had to make some cuts. In particular, the following have been cut:
- Map JSON values stored in database to EF properties
- Support for query filters in compiled models
- Support unidirectional many-to-many relationships through shadow navigations
- Implement value conversions that spread out over multiple columns (value objects)
- Use C# structs or classes as value objects
- Cosmos: Support aggregate operators
We know many of you have been waiting for these features, and we apologize that we cannot get them into the 6.0 release. They will be high on the priority list for EF Core 7.0, where we can ensure they get enough time in previews for feedback, evaluation, and quality before shipping.
Latest Community Standup: OData
OData is one of the best protocols out there to supercharge your ASP.NET Core APIs, with many capabilities such as shaping, filtering, batching and ordering. It executes its queries on the server which tremendously improves the performance on the client side. On the most recent EF Core Community Standup, Hassan Habib ([@HassanRezkHabib]](https://twitter.com/HassanRezkHabib)) joined the EF team to talk all things OData.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021.
The EF Core 6.0 Plan is available publicly in our documentation. Feedback is greatly appreciated as always. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level area for EF Core 6.0 is linked in the table below together with its current high-level status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | In-progress |
JSON columns | Cut | |
ColumnAttribute.Order | In-progress | |
Performance | Infrastructure and tests | Complete |
Compiled models | Complete | |
TechEmpower Fortunes | Complete | |
Linker/AOT | Scoped | |
Migrations and deployment | Migrations bundles | In-progress |
Managing migrations | Scoped | |
Improve existing features | EF6 query parity | In-progress |
Value objects | Cut | |
Cosmos database provider | Expanded | |
Public model conventions | Cut | |
Zero bug balance | Scoped | |
.NET integration | Enhancements to System.Data | Complete |
Enhancements to Microsoft.Data.Sqlite | Scoped | |
Nullable reference types | Complete | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 6.0 preview 6
EF Core 6.0 preview 6 is on NuGet now!
The following new features are included in preview 6:
- Support Timeout.InfiniteTimeSpan in SetCommandTimeout
- Support suspending/bypassing the configured DbContext's IExecutionStrategy
- Support 64-bit Identity seed values
- Warn when saving an optional dependent with all null properties when table splitting
- Remove existing schema when HasSchema(null) is called
- Add equivalent of IRelationalDbContextOptionsBuilderInfrastructure to in-memory provider
- Make HasDbFunction on function override implicit ToTable mapping
- Make IScaffoldingModelFactory public
- Uniquify and validate Check Constraint name
- Translate MathF members to SQL functions on SQLite
- Pre-convention model configuration
- Mechanism/API to specify a default conversion for any property of a given type in the model
- Support Ignore() for non entity type candidates
Preview 6 also includes the following features earlier previews:
- Reduce EF Core application startup time via compiled models
- Add TagWith overload that gets the filename and line number automatically
- Translate bool ToString for SQL Server
- Scaffold from a database and generate C# 8 nullable reference types
- Translate Substring with single parameter
- Support split queries for projections containing non-navigation collections
- Improve EF Core performance on TechEmpower Fortunes
- Support empty constructor and DbContextOptions constructor in DbContextFactory
- Make DbContext pooling accessible to non-DI applications
- Increase the default maximum context pool size to 1024
- Improve TechEmpower Fortunes performance
- Allow explicit temporary values that are stored in the entity instance
- Add trailing underscore to the backing field matching convention
- Preserve synchronization context in SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with System.Linq.Async
- More flexible free-text search
- 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 6.0 preview 6
Microsoft.Data.SQLite 6.0 preview 6 is on NuGet now!
Preview 6 contains the following new features:
Preview 6 also includes the following features earlier previews:
- Fall back to case-insensitive matches for
SqliteDataReader[<string>]
- Add Span overloads to SqliteBlob
- Savepoints API
- Command timeout in the connection string
EF Core 5.0.8
The latest patch release of EF Core 5.0 is available on NuGet now. This patch fixes 3 important bugs in the 5.0 release.
EF Core 3.1.17
EF Core 3.1.17 is available on NuGet now. This is a patch release of EF Core 3.1 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 3.1.16.
Pull requests merged since the last update
Community contributions
- @umitkavala: Warn when saving an optional dependent with all null properties when table splitting
- @martincostello: Use Random.Shared
- @vonzshik: Allow to run migrations inside of a user transaction
- @ErikEJ: Stop using AddFromFile with many files
- @ntovas: Add Translation for MathF
- @martincostello: Allow execution strategy bypass
- @taha-ghadirian: Add support for InfiniteTimeSpan in SetCommandTimeout
- @Marusyk: Add Math translators for Cosmos DB provider
- @lauxjpn: Fix missing code generation output for custom data annotation attributes
- @lauxjpn: Fix table casing to be the expected default (Pascal casing)
- @dmitry-lipetsk: Add IColumnModification and IModificationCommand to allow the implementations to be replaced easily
- @Giorgi: Add CommandSource to CommandEventData
- @teo-tsirpanis: Add a missing parenthesis
- @gieseanw: Spelling and grammar fixes
- @thiggins1990: Update existing-database.md
- @koenbeuk: Added an extensions entry for EntityFrameworkCore.Projectables
- @ErikEJ: Update comparision
- @joelmandell: New overload: implementing IModelCacheKeyFactory
- @JonasSamuelsson: Update entity-entries.md
- @ErikEJ: Update for added support for EF Core 5
- @JohnMHigginsPMC: Removed extra parenthesis
- @GitHubPang: Fix typos and grammar
- @bartoszluka: Fix word order typo
- @OOberoi: Update relationships.md
- @joakimriedel: Add a note on querying shared columns
- @GitHubPang: Fix typos and grammar
- @gavinroderick: Update efficient-querying.md
- @ErikEJ: Remove "ConnectRetryCount", no longer needed due to added overload of SqlConnection.Open being used
- @mrlife: Update value-conversions.md
Many thanks to all our contributors!
EF Core
- Model building
- Add pre-convention model configuration infrastructure
- Make DbFunction.HasSchema(null) always override the attribute
- Allow long identity seed
- Temporal tables: migrations and model building
- Don't remove default table mapping for TVF return entity types
- Allow to ignore entity types and properties by base type or interface
- Allow to toggle cross-table uniqueness for indexes and check constraints
- Rerun relationship discovery if an ambiguity has been resolved on the inverse
- Fix the return type of OwnedNavigationBuilder.HasIndex
- Documentation
- Miscellaneous
- DbContext
- Dependencies
- Scaffolding
- Migrations
- Cosmos
- Query
- SQLite
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 6.0 preview 6
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.8
- LTS: EF Core 3.1.17
Releases
See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
August 12, 2021
Expand to see status from this week...
Highlights
Migration Bundles
EF Core 6.0 preview 7 (which is on NuGet now!) contains the first cut of Migration Bundles.
Using the dotnet ef
command:
dotnet tool update -g dotnet-ef --version 6.0.0-*
dotnet ef migrations bundle
./bundle
Or from the Visual Studio Package Manager Console:
Bundle-Migration
.\bundle.exe
We're still working on the experience, so try it now and send us your feedback!
Cosmos
Six enhancements to the Cosmos provider were merged in the past two weeks, including:
- Make it possible to configure a HttpClientFactory (by @dnperfors)
- Add API to configure TTL and throughput
- Add basic support for nested collections of primitive types
- Adding translation for string.Length
- Add diagnostic events with statistics
- Set partition key on join entity type by convention
These didn't make preview 7, but try them now in a daily build or wait for the RC1 release.
Latest Community Standup: Query filters!
In the latest Entity Framework Community Standup, @JonPSmith shares how to use global query filters to achieve soft deletes and multi-tenancy in #EFCore.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021.
The EF Core 6.0 Plan is available publicly in our documentation. Feedback is greatly appreciated as always. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level area for EF Core 6.0 is linked in the table below together with its current high-level status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | Complete |
JSON columns | Cut | |
ColumnAttribute.Order | In-progress | |
Performance | Infrastructure and tests | Complete |
Compiled models | Complete | |
TechEmpower Fortunes | Complete | |
Linker/AOT | Scoped | |
Migrations and deployment | Migrations bundles | In-progress |
Managing migrations | Scoped | |
Improve existing features | EF6 query parity | In-progress |
Value objects | Cut | |
Cosmos database provider | Expanded | |
Public model conventions | Cut | |
Zero bug balance | Scoped | |
.NET integration | Enhancements to System.Data | Complete |
Enhancements to Microsoft.Data.Sqlite | Scoped | |
Nullable reference types | Complete | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 6.0 preview 7
EF Core 6.0 preview 7 is on NuGet now!
Preview 7 contains the first cut of Migration Bundles. Preview 7 also includes the following features from earlier previews:
- Support Timeout.InfiniteTimeSpan in SetCommandTimeout
- Support suspending/bypassing the configured DbContext's IExecutionStrategy
- Support 64-bit Identity seed values
- Warn when saving an optional dependent with all null properties when table splitting
- Remove existing schema when HasSchema(null) is called
- Add equivalent of IRelationalDbContextOptionsBuilderInfrastructure to in-memory provider
- Make HasDbFunction on function override implicit ToTable mapping
- Make IScaffoldingModelFactory public
- Uniquify and validate Check Constraint name
- Translate MathF members to SQL functions on SQLite
- Pre-convention model configuration
- Mechanism/API to specify a default conversion for any property of a given type in the model
- Support Ignore() for non entity type candidates
- Reduce EF Core application startup time via compiled models
- Add TagWith overload that gets the filename and line number automatically
- Translate bool ToString for SQL Server
- Scaffold from a database and generate C# 8 nullable reference types
- Translate Substring with single parameter
- Support split queries for projections containing non-navigation collections
- Improve EF Core performance on TechEmpower Fortunes
- Support empty constructor and DbContextOptions constructor in DbContextFactory
- Make DbContext pooling accessible to non-DI applications
- Increase the default maximum context pool size to 1024
- Improve TechEmpower Fortunes performance
- Allow explicit temporary values that are stored in the entity instance
- Add trailing underscore to the backing field matching convention
- Preserve synchronization context in SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with System.Linq.Async
- More flexible free-text search
- 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 6.0 preview 7
Microsoft.Data.SQLite 6.0 preview 7 is on NuGet now!
Preview 7 does not contain any significant new features over preview 6. However, preview 7 does include the following features from earlier previews:
- Support the new BCL DateOnly and TimeOnly structs for SQLite
- Fall back to case-insensitive matches for
SqliteDataReader[<string>]
- Add Span overloads to SqliteBlob
- Savepoints API
- Command timeout in the connection string
EF Core 5.0.9
The latest patch release of EF Core 5.0 is available on NuGet now. This is a patch release of EF Core 5.0 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 5.0.8.
EF Core 3.1.18
EF Core 3.1.18 is available on NuGet now. This is a patch release of EF Core 3.1 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 3.1.17.
Pull requests merged since the last update
Community contributions
- @lauxjpn : Enable value conversion support for identity/sequence properties
- @dnperfors: Cosmos: Make it possible to configure a HttpClientFactory
- @ErikEJ: Skip and warn of duplicated SQL Server foreign keys
- @ashotmuradian: Fix typo in dbcontext-configuration/index.md
- @vslee: Add Google.Cloud.EntityFrameworkCore.Spanner
- @ashotmuradian: Remove duplicate note
Many thanks to all our contributors!
EF Core
- Model building
- Add more overloads of UsingEntity
- Add ToTable overloads with TableBuilder for OwnedNavigationBuilder
- Add ToFunction overloads that take a MethodInfo
- Allow ForeignKeyAttribute to be used on skip navigations
- Don't fallback to default foreign key properties for many-to-many if no attribute was specified
- Make the annotations SortedDictionary use ordinal ordering
- Allow TypeMappingSource to use the pre-convention configuration
- Cosmos
- Miscellaneous
- DbContext
- Query
- Documentation
- Scaffolding
- Migrations
- SaveChanges
- Change tracking
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 6.0 preview 7
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.9
- LTS: EF Core 3.1.18
Releases
See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
August 26, 2021
Expand to see status from this week...
Highlights
- More than 80 PRs merged in last two weeks as we start closing down on the EF Core 6.0 release.
- RC1 is coming soon and is feature-complete*
- Just merged for RC1: Cosmos FromSQL, even more GroupBy support, scaffolding many-to-many relationships, and more...
- Plus: connection pooling in Microsoft.Data.Sqlite!
- Makes encrypted SQLite databases much easier to use
* Allow defining column order via ColumnAttribute.Order when creating tables didn't make RC1, but we are hoping to get it into RC2.
Latest Community Standup: Dapper!
In the latest Entity Framework Community Standup, Nick Craver (@NickCraver) and Marc Gravell (@mgravell) joined the EF Team to talk about Dapper, EF Core, and .NET data access in general.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021.
The EF Core 6.0 Plan is available publicly in our documentation. Feedback is greatly appreciated as always. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level area for EF Core 6.0 is linked in the table below together with its current high-level status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | Complete |
JSON columns | Cut | |
ColumnAttribute.Order | In-progress | |
Performance | Infrastructure and tests | Complete |
Compiled models | Complete | |
TechEmpower Fortunes | Complete | |
Linker/AOT | Scoped/Complete | |
Migrations and deployment | Migrations bundles | Complete |
Managing migrations | Scoped/Complete | |
Improve existing features | EF6 query parity | Scoped/Complete |
Value objects | Cut | |
Cosmos database provider | Expanded/Complete | |
Public model conventions | Cut | |
Zero bug balance | Scoped/In-progress | |
.NET integration | Enhancements to System.Data | Complete |
Enhancements to Microsoft.Data.Sqlite | Complete | |
Nullable reference types | Complete | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 6.0 preview 7
EF Core 6.0 preview 7 is on NuGet now!
Preview 7 contains the first cut of Migration Bundles. Preview 7 also includes the following features from earlier previews:
- Support Timeout.InfiniteTimeSpan in SetCommandTimeout
- Support suspending/bypassing the configured DbContext's IExecutionStrategy
- Support 64-bit Identity seed values
- Warn when saving an optional dependent with all null properties when table splitting
- Remove existing schema when HasSchema(null) is called
- Add equivalent of IRelationalDbContextOptionsBuilderInfrastructure to in-memory provider
- Make HasDbFunction on function override implicit ToTable mapping
- Make IScaffoldingModelFactory public
- Uniquify and validate Check Constraint name
- Translate MathF members to SQL functions on SQLite
- Pre-convention model configuration
- Mechanism/API to specify a default conversion for any property of a given type in the model
- Support Ignore() for non entity type candidates
- Reduce EF Core application startup time via compiled models
- Add TagWith overload that gets the filename and line number automatically
- Translate bool ToString for SQL Server
- Scaffold from a database and generate C# 8 nullable reference types
- Translate Substring with single parameter
- Support split queries for projections containing non-navigation collections
- Improve EF Core performance on TechEmpower Fortunes
- Support empty constructor and DbContextOptions constructor in DbContextFactory
- Make DbContext pooling accessible to non-DI applications
- Increase the default maximum context pool size to 1024
- Improve TechEmpower Fortunes performance
- Allow explicit temporary values that are stored in the entity instance
- Add trailing underscore to the backing field matching convention
- Preserve synchronization context in SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with System.Linq.Async
- More flexible free-text search
- 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 6.0 preview 7
Microsoft.Data.SQLite 6.0 preview 7 is on NuGet now!
Preview 7 does not contain any significant new features over preview 6. However, preview 7 does include the following features from earlier previews:
- Support the new BCL DateOnly and TimeOnly structs for SQLite
- Fall back to case-insensitive matches for
SqliteDataReader[<string>]
- Add Span overloads to SqliteBlob
- Savepoints API
- Command timeout in the connection string
EF Core 5.0.9
The latest patch release of EF Core 5.0 is available on NuGet now. This is a patch release of EF Core 5.0 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 5.0.8.
EF Core 3.1.18
EF Core 3.1.18 is available on NuGet now. This is a patch release of EF Core 3.1 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 3.1.17.
Pull requests merged since the last update
Community contributions
- @aayjaychan: Fix malformed XML doc in StoreObjectIdentifier
- @billybraga: Forcing usage of renting and populating commands when using relational command cache
- @JoseDeFreitas: Fix small type errors
- @okyrylchuk: Improve link to Property Bags documentation page for What's New in EF Core 5.0 page
- @sdanyliv: Updated linq2db.EntityFrameworkCore extension with EF Core 6 support
- @vanillajonathan: Fix string.Lower to string.ToLower
Many thanks to all our contributors!
EF Core
- Query
- Fix query performance issue combining Inheritance and OwnedTypes
- Adding translations for cosmos string methods
- Remove last ORDER BY for collection joins
- Query: API Review changes
- Use the pre-convention type mapping configuration in query
- Add support for GroupBy patterns beyond aggregate
- Add a test for group by constant composed
- Run shaper only when needed in SplitQueryingEnumerable
- Remove unnecessary convert to IEnumerable for OData
- Add regression test for Contains on skip collection navigation
- Fix some test determinism issues
- Allow using STET overload for Set in query filter/defining query
- Better pattern match to add code to join fetch entity when including SkipNavigation
- Remove redundant override of TranslateSubquery
- Add regression test for #21036
- Add regression test for #21490
- Throw better error message for grouping parameter without composition in Select
- Don't expand include on entity reference which will be converted to entity equality
- Clone shaped query expression during translation
- Add regression test for #18658
- Add regression test for #24133
- Re-enable fixed test
- Add regression test for #18582
- Add regression test for #12329
- Fully printing include tree structure
- Query/Test: convert remaining complex nav collection tests to AssertQuery
- Add regression test for #25680
- Add regression test for #24368
- Fix to #24953 - Different orders of Include()/Where() in queries produce different results
- Model building
- Warn when uniquifying an FK column name
- Fixes around namespaces and Fluent API calls
- Simplify HasConversion API by allowing provider type and converter type to be used interchangeably
- Support mapping identity columns to enum properties
- Allow HasDefaultValue where value is assignable to property
- Add scalar type configuration support to compiled models
- Make compiled model and runtime initialization thread-safe
- Outstanding work for temporal tables
- Rename Scalars to DefaultTypeMapping
- Change the default subfolder/subnamespace for compiled models to CompiledModels
- Add a pubternal way to namespace-qualify ambiguous types in compiled model
- Apply pre-convention configuration to nullable instances
- Fix nullability in compiled model
- Documentation
- Migrations
- Temporal Tables: The given key 'SqlServer:TemporalHistoryTableName' was not present in the dictionary when creating migration on entity mapped to temporal table without explicitly providing history table name
- Migrations Bundles: Fix some bugs
- Migrations Bundles: Address API Review feedback
- Disable nullability in migrations
- Add MigrationsModelDiffer tests for propagating facets
- Implement remaining Migrations Bundles features
- Cosmos
- Change tracking
- DbContext
- Miscellaneous
- Scaffolding
- SaveChanges
Microsoft.Data.Sqlite
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 6.0 preview 7
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.9
- LTS: EF Core 3.1.18
Releases
See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
September 9, 2021
Expand to see status from this week...
Highlights
We're heads-down fixing bugs and making small tweaks for the EF Core 6.0 release.
- Another 70+ PRs merged in the last two weeks
- So far, EF Core 6.0 contains 172 enhancements, and 247 bug fixes.
Also, check out Taking the EF Core Azure Cosmos DB Provider for a Test Drive just posted to the .NET Blog.
Latest Community Standup: OSS EF Core
In the latest Entity Framework Community Standup, Erik Ejlskov Jensen (@ErikEJ) joined the EF Team to talk about the many useful projects in the unofficial EF Core repo. These range from custom naming conventions and check constraints to design-time support for F#. In this session, Erik highlighted several projects and demoed them.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021.
The EF Core 6.0 Plan is available publicly in our documentation. Feedback is greatly appreciated as always. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level area for EF Core 6.0 is linked in the table below together with its current high-level status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | Complete |
JSON columns | Cut | |
ColumnAttribute.Order | In-progress | |
Performance | Infrastructure and tests | Complete |
Compiled models | Complete | |
TechEmpower Fortunes | Complete | |
Linker/AOT | Scoped/Complete | |
Migrations and deployment | Migrations bundles | Complete |
Managing migrations | Scoped/Complete | |
Improve existing features | EF6 query parity | Scoped/Complete |
Value objects | Cut | |
Cosmos database provider | Expanded/Complete | |
Public model conventions | Cut | |
Zero bug balance | Scoped/In-progress | |
.NET integration | Enhancements to System.Data | Complete |
Enhancements to Microsoft.Data.Sqlite | Complete | |
Nullable reference types | Complete | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 6.0 preview 7
EF Core 6.0 preview 7 is on NuGet now!
Preview 7 contains the first cut of Migration Bundles. Preview 7 also includes the following features from earlier previews:
- Support Timeout.InfiniteTimeSpan in SetCommandTimeout
- Support suspending/bypassing the configured DbContext's IExecutionStrategy
- Support 64-bit Identity seed values
- Warn when saving an optional dependent with all null properties when table splitting
- Remove existing schema when HasSchema(null) is called
- Add equivalent of IRelationalDbContextOptionsBuilderInfrastructure to in-memory provider
- Make HasDbFunction on function override implicit ToTable mapping
- Make IScaffoldingModelFactory public
- Uniquify and validate Check Constraint name
- Translate MathF members to SQL functions on SQLite
- Pre-convention model configuration
- Mechanism/API to specify a default conversion for any property of a given type in the model
- Support Ignore() for non entity type candidates
- Reduce EF Core application startup time via compiled models
- Add TagWith overload that gets the filename and line number automatically
- Translate bool ToString for SQL Server
- Scaffold from a database and generate C# 8 nullable reference types
- Translate Substring with single parameter
- Support split queries for projections containing non-navigation collections
- Improve EF Core performance on TechEmpower Fortunes
- Support empty constructor and DbContextOptions constructor in DbContextFactory
- Make DbContext pooling accessible to non-DI applications
- Increase the default maximum context pool size to 1024
- Improve TechEmpower Fortunes performance
- Allow explicit temporary values that are stored in the entity instance
- Add trailing underscore to the backing field matching convention
- Preserve synchronization context in SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with System.Linq.Async
- More flexible free-text search
- 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 6.0 preview 7
Microsoft.Data.SQLite 6.0 preview 7 is on NuGet now!
Preview 7 does not contain any significant new features over preview 6. However, preview 7 does include the following features from earlier previews:
- Support the new BCL DateOnly and TimeOnly structs for SQLite
- Fall back to case-insensitive matches for
SqliteDataReader[<string>]
- Add Span overloads to SqliteBlob
- Savepoints API
- Command timeout in the connection string
EF Core 5.0.9
The latest patch release of EF Core 5.0 is available on NuGet now. This is a patch release of EF Core 5.0 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 5.0.8.
EF Core 3.1.18
EF Core 3.1.18 is available on NuGet now. This is a patch release of EF Core 3.1 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 3.1.17.
Pull requests merged since the last update
Community contributions
- @vslee: Update IBM provider to 5.0
- @vanillajonathan: Inherit from Controller class
- @rbgnk: Fix NuGet packages link
- @pksivanantham: Corrected syntax in code snippet
Many thanks to all our contributors!
EF Core
- Query
- Add regression test for #23784
- Add test for projected Contains(null)
- Re-add test for obsolete ToQuery
- Add regression test for #23658
- Northwind tests don't have predefined entity asserters
- Adding regression tests for some issues fixed earlier
- Convert enum to underlying CLR type in type mapping when type
- Relational: No tests for TranslateContains path
- Enable test for Projecting_column_with_value_converter_of_ulong_byte_array
- Add regression test for #21602
- Re-enable test for #22896
- Adding some regression tests for issues fixed earlier
- Relational: IS (NOT) NULL requires parenthesis when not in left side of an equality
- Reenable previously flaky Union_non_entity
- Different orders of Include()/Where() in queries produce different results
- Convert enum value to integer when printing constant as needed
- Use cancellationToken appropriately
- Don't mark property as loaded in lazy-loader if lazy-loading fails
- Model building
- Be more explicit about which overloads of HasConversion to use with compiled model
- Configure requiredness based on NRT even if principal end might be ambiguous
- Don't look for CLR properties on property bag entity types
- Configure self-referencing navigations when disambiguated by ForeignKey attributes
- Correctly handle adding optional dependents using table splitting without principal
- Discover inverse navigations when entity added after being ignored
- Allow sharing column when properties have different nullability
- Configure ambiguous navigations with RequiredAttribute
- Avoid sharing default mappings for entity types
- Find inverse property navigation case sensitive first
- Change logging level for non-created indexes from Info to Warn
- Convert SingleResult compared to null to Any
- Validate same filters in duplicate indexes
- Change tracking
- Avoid stack overflow when saving multiple modified entities with the same key
- Allow setting original/current values using a typed dictionary
- Store store-generated FK values in the store-generated snapshot
- Reset unknown original value when current value is set
- Add regression test for cycle detection using lazy-loading proxies
- Detatching principal keeps track of unreferenced dependents
- Remove factory from value generator cache key
- Add convert node to snapshot expression when needed
- Avoid stack overflow when saving multiple modified entities with the same key
- Allow setting original/current values using a typed dictionary
- Store store-generated FK values in the store-generated snapshot
- Cosmos
- Documentation
- Miscellaneous
- Scaffolding
- Migrations
- Type mapping
- SaveChanges
- Dependency updates
- Tooling
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 6.0 preview 7
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.9
- LTS: EF Core 3.1.18
Releases
See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
September 23, 2021
Expand to see status from this week...
Highlights
- EF Core 6.0 RC1 is on NuGet now!
- Feature complete!
- Temporal tables
- Migrations bundles
- Better Cosmos
- Scaffold many-to-many
- Better GroupBy
- Default value conversions
- Compiled models
- NRTs
- Better split queries
- Perf
- Plus more...
- See What's New in EF Core 6.0 for a detailed look at all the new features, including runnable samples.
Try it! We need your feedback!
(Allow defining column order via [ColumnAttribute.Order] when creating tables will ship in RC2.)
Latest Community Standup: PostgreSQL and EF Core
In the latest Entity Framework Community Standup, Shay Rojansky (@roji) demonstrated using EF Core with PostgreSQL. PostgreSQL has some advanced capabilities not usually found in other relational databases. In this session, Shay showed several of these features, and demoed how EF Core makes these accessible.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021. We have now completed all feature work for EF Core 6.0; please try RC1 (see below) now and help us find bug!
Each high-level area for EF Core 6.0 is linked in the table below together with its final status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | Complete |
JSON columns | Cut | |
ColumnAttribute.Order | Complete | |
Performance | Infrastructure and tests | Complete |
Compiled models | Complete | |
TechEmpower Fortunes | Complete | |
Linker/AOT | Scoped/Complete | |
Migrations and deployment | Migrations bundles | Complete |
Managing migrations | Scoped/Complete | |
Improve existing features | EF6 query parity | Scoped/Complete |
Value objects | Cut | |
Cosmos database provider | Expanded/Complete | |
Public model conventions | Cut | |
Zero bug balance | Scoped/In-progress | |
.NET integration | Enhancements to System.Data | Complete |
Enhancements to Microsoft.Data.Sqlite | Complete | |
Nullable reference types | Complete | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 6.0 RC1
EF Core 6.0 RC1 is on NuGet now!
The RC1 release contains all the features planned for EF Core 6.0, except Allow defining column order via [ColumnAttribute.Order] when creating tables which will ship in RC2.
See What's New in EF Core 6.0 for a detailed look at all the new features in EF Core 6.0.
RC1 contains the following new features over those previously shipped in Preview 7:
- SQL Server temporal tables
- Migrations Bundles
- Cosmos: Add basic support for collections and dictionaries of primitive types
- Cosmos: Add translators for member/methods which map to built-in functions
- Cosmos: Distinct operator in queries
- Cosmos: Diagnostic events including statistics (query cost, activity id)
- Cosmos: API to configure throughput
- Cosmos: Configure TTL per entity/entity type/container
- Cosmos: FromSql support
- Cosmos: Resolve HttpClientFactory from DI if available
- Cosmos: Azure Cosmos DB provider should default to implicit ownership
- Detect simple join tables in reverse engineering and create many-to-many relationships
- Translate GroupBy followed by FirstOrDefault over group
- Support ability to select top N of each group
- Remove unnecessary last column in ORDER BY when joining for collection
- Add IColumnModification and IModificationCommand to allow the implementations to be replaced easily
- Non-constant property name in EF.Property (and indexer property)
- Make the non-thread-safety of DbContext more visible
- Store options in ServiceProviderCache
- Adopt MIT license
- Warn when uniquifying an FK column name
- Preserve DeleteBehavior when scaffolding a database created by EF Core
- Add overloads of UsingEntity() that take advantage of conventions
- Log provider version in addition to EF Core version
- Indicate where SQL comes from (SaveChanges, LINQ query, etc.) in IDbCommandInterceptor
- Register a scoped DbContext automatically when using AddDbContextFactory
- Add extension methods to enable simpler adding and configuration of EF Core providers
- Simplify HasConversion API
And for Microsoft.Data.Sqlite:
RC1 also includes the following new features in previews 1 through 7:
- Support Timeout.InfiniteTimeSpan in SetCommandTimeout
- Support suspending/bypassing the configured DbContext's IExecutionStrategy
- Support 64-bit Identity seed values
- Warn when saving an optional dependent with all null properties when table splitting
- Remove existing schema when HasSchema(null) is called
- Add equivalent of IRelationalDbContextOptionsBuilderInfrastructure to in-memory provider
- Make HasDbFunction on function override implicit ToTable mapping
- Make IScaffoldingModelFactory public
- Uniquify and validate Check Constraint name
- Translate MathF members to SQL functions on SQLite
- Pre-convention model configuration
- Mechanism/API to specify a default conversion for any property of a given type in the model
- Support Ignore() for non entity type candidates
- Reduce EF Core application startup time via compiled models
- Add TagWith overload that gets the filename and line number automatically
- Translate bool ToString for SQL Server
- Scaffold from a database and generate C# 8 nullable reference types
- Translate Substring with single parameter
- Support split queries for projections containing non-navigation collections
- Improve EF Core performance on TechEmpower Fortunes
- Support empty constructor and DbContextOptions constructor in DbContextFactory
- Make DbContext pooling accessible to non-DI applications
- Increase the default maximum context pool size to 1024
- Improvements to optional dependents sharing table with principal
- Detection of trailing underscores when matching backing fields to properties
- Performance gain by recycling relational and ADO.NET objects in query execution
- Allow explicit temporary values to be stored in entity instances
- Default options added to all ToDebugString methods
- Improved logging of array parameter values
- Preserve synchronization context in SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with System.Linq.Async
- More flexible free-text search
- 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
And for Microsoft.Data.Sqlite:
- Support the new BCL DateOnly and TimeOnly structs for SQLite
- Fall back to case-insensitive matches for
SqliteDataReader[<string>]
- Add Span overloads to SqliteBlob
See GitHub for all issues resolved in RC1.
EF Core 5.0.10
The latest patch release of EF Core 5.0 is available on NuGet now. This is a patch release of EF Core 5.0 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 5.0.9.
EF Core 3.1.19
EF Core 3.1.19 is available on NuGet now. This is a patch release of EF Core 3.1 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 3.1.18.
Pull requests merged since the last update
Community contributions
Many thanks to all our contributors!
EF Core
- Query
- Adding regression test for #24931 - SqlNullValueException on specific combination of outer joins in LINQ
- Add condition when accessing property on optional dependent which is shared
- Generate multiple query tags without newlines between them
- InMemory: Read nullable value for derived properties
- Convert result of Round appropriately for MathF functions
- Add regression test for #24657
- Enable test for #24291
- Re-enable few tests
- Add regression test for #19726
- Avoid incorrect cast when simplifying null check
- Add regression test for #21665
- Translate object.Equals correctly when object argument passed with constant
- Extract join predicate from Having for group by aggregate queries
- Fix to #19883 - Null semantics should keep track of columns that are guaranteed to be null and remove redundant IS NULL/IS NOT NULL checks
- Fix to #26014 - Migrations/Temporal Tables: null value exception when executing Down migration to convert entity from temporal to normal
- Throw better error message when final result contains IGrouping
- Add regression test for #25315 - Unable to translate collection subquery in projection
- Fix temporal table tests
- Translate ToList over grouping element
- Adding regression test for #15279
- Adding grouping tests from EF6
- Fix to #24490 - Update exception message when correlated collection cannot be projected
- Model building
- Fixup to index filter validation
- Make sure navigations on property bag entity types don't use CLR properties
- Make compiled model classes public and supporting classes internal
- Apply pre-convention value converters on nullable types
- Better exception message when switching from owned to non-owned configuration
- Don't hard-code value generation to Never for FKs
- Throw better exception for many-to-many with same navigation on both ends
- List shared-identity entries for STETs
- Check for navigation compatibility with keyless type when navigation is non-null
- Add regression test for HasMany on keyless entity
- Add regression test for #18149
- Update the entity type on check constraints when it's converted to a STET
- Use the correct value when the discriminator is part of the key
- Improve exception message for a shadow skip navigation
- Migrations
- Honor Column(Order) attribute in CreateTable operation
- Bundles: Copy NuGet.Config and global.json files
- Fix adding value-converted rowversion column
- Bundles: Flow configuration from project
- Fix Fluent APIs on keys in model snapshot
- Fully support int identity seed
- Always store join table schema in the snapshot
- Fix snapshot generation with HiLo
- Documentation
- SaveChanges
- Change tracking
- Extensibility
- Scaffolding
- Tooling
- SQLite
- Dependency updates
- Temporal tables
Microsoft.Data.Sqlite
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 6.0 RC1
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.10
- LTS: EF Core 3.1.19
Releases
See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
October 7, 2021
Expand to see status from this week...
Highlights
- Check out the full documentation and samples for everything new in EF Core 6.0.
- We have pretty much closed down work on the GA version. Get the bits now in a daily build and report your issues!
- Learn about SQL Server Temporal Tables in EF Core 6.0 with an in-depth demo on the EF Community Standup.
- The team is now focused on 7.0 planning, internal quality improvements, and documentation.
Latest Community Standup: SQL Server Temporal Tables
In the latest Entity Framework Community Standup, Arthur Vickers (@ajcvickers) demonstrated using EF Core 6.0 with SQL Server temporal tables. Temporal tables automatically keep track of all the data ever stored in a table, even after that data has been updated or deleted. EF Core 6.0 supports the creation of temporal tables using migrations, querying historical data, and restoring data from some point in the past.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021. We have now completed all work for EF Core 6.0; please try the daily build now and help us weed out any remaining bugs.
Each high-level area for EF Core 6.0 is linked in the table below together with its final status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | Complete |
JSON columns | Cut | |
ColumnAttribute.Order | Complete | |
Performance | Infrastructure and tests | Complete |
Compiled models | Complete | |
TechEmpower Fortunes | Complete | |
Linker/AOT | Scoped/Complete | |
Migrations and deployment | Migrations bundles | Complete |
Managing migrations | Scoped/Complete | |
Improve existing features | EF6 query parity | Scoped/Complete |
Value objects | Cut | |
Cosmos database provider | Expanded/Complete | |
Public model conventions | Cut | |
Zero bug balance | Scoped/Complete | |
.NET integration | Enhancements to System.Data | Complete |
Enhancements to Microsoft.Data.Sqlite | Complete | |
Nullable reference types | Complete | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 6.0 RC1
EF Core 6.0 RC1 is on NuGet now!
The RC1 release contains all the features planned for EF Core 6.0, except Allow defining column order via [ColumnAttribute.Order] when creating tables which will ship in RC2.
See What's New in EF Core 6.0 for a detailed look at all the new features in EF Core 6.0.
RC1 contains the following new features over those previously shipped in Preview 7:
- SQL Server temporal tables
- Migrations Bundles
- Cosmos: Add basic support for collections and dictionaries of primitive types
- Cosmos: Add translators for member/methods which map to built-in functions
- Cosmos: Distinct operator in queries
- Cosmos: Diagnostic events including statistics (query cost, activity id)
- Cosmos: API to configure throughput
- Cosmos: Configure TTL per entity/entity type/container
- Cosmos: FromSql support
- Cosmos: Resolve HttpClientFactory from DI if available
- Cosmos: Azure Cosmos DB provider should default to implicit ownership
- Detect simple join tables in reverse engineering and create many-to-many relationships
- Translate GroupBy followed by FirstOrDefault over group
- Support ability to select top N of each group
- Remove unnecessary last column in ORDER BY when joining for collection
- Add IColumnModification and IModificationCommand to allow the implementations to be replaced easily
- Non-constant property name in EF.Property (and indexer property)
- Make the non-thread-safety of DbContext more visible
- Store options in ServiceProviderCache
- Adopt MIT license
- Warn when uniquifying an FK column name
- Preserve DeleteBehavior when scaffolding a database created by EF Core
- Add overloads of UsingEntity() that take advantage of conventions
- Log provider version in addition to EF Core version
- Indicate where SQL comes from (SaveChanges, LINQ query, etc.) in IDbCommandInterceptor
- Register a scoped DbContext automatically when using AddDbContextFactory
- Add extension methods to enable simpler adding and configuration of EF Core providers
- Simplify HasConversion API
And for Microsoft.Data.Sqlite:
RC1 also includes the following new features in previews 1 through 7:
- Support Timeout.InfiniteTimeSpan in SetCommandTimeout
- Support suspending/bypassing the configured DbContext's IExecutionStrategy
- Support 64-bit Identity seed values
- Warn when saving an optional dependent with all null properties when table splitting
- Remove existing schema when HasSchema(null) is called
- Add equivalent of IRelationalDbContextOptionsBuilderInfrastructure to in-memory provider
- Make HasDbFunction on function override implicit ToTable mapping
- Make IScaffoldingModelFactory public
- Uniquify and validate Check Constraint name
- Translate MathF members to SQL functions on SQLite
- Pre-convention model configuration
- Mechanism/API to specify a default conversion for any property of a given type in the model
- Support Ignore() for non entity type candidates
- Reduce EF Core application startup time via compiled models
- Add TagWith overload that gets the filename and line number automatically
- Translate bool ToString for SQL Server
- Scaffold from a database and generate C# 8 nullable reference types
- Translate Substring with single parameter
- Support split queries for projections containing non-navigation collections
- Improve EF Core performance on TechEmpower Fortunes
- Support empty constructor and DbContextOptions constructor in DbContextFactory
- Make DbContext pooling accessible to non-DI applications
- Increase the default maximum context pool size to 1024
- Improvements to optional dependents sharing table with principal
- Detection of trailing underscores when matching backing fields to properties
- Performance gain by recycling relational and ADO.NET objects in query execution
- Allow explicit temporary values to be stored in entity instances
- Default options added to all ToDebugString methods
- Improved logging of array parameter values
- Preserve synchronization context in SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with System.Linq.Async
- More flexible free-text search
- 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
And for Microsoft.Data.Sqlite:
- Support the new BCL DateOnly and TimeOnly structs for SQLite
- Fall back to case-insensitive matches for
SqliteDataReader[<string>]
- Add Span overloads to SqliteBlob
See GitHub for all issues resolved in RC1.
EF Core 5.0.10
The latest patch release of EF Core 5.0 is available on NuGet now. This is a patch release of EF Core 5.0 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 5.0.9.
EF Core 3.1.19
EF Core 3.1.19 is available on NuGet now. This is a patch release of EF Core 3.1 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 3.1.18.
Pull requests merged since the last update
Community contributions
- @koenbeuk: Updated compatibility of 2 projects to include EF Core 6
- @Krzysztofz01: EFCore.QueryFilterBuilder added to extensions list
- @randomnoise: Added missing "without"
Many thanks to all our contributors!
EF Core
- Documentation
- Docs typo
- Fix API docs errors
- GroupBy samples for What's New in EF Core 6.0
- Remaining What's New in EF Core 6.0
- Move top-level What's New to EF Core 6.0
- Document SQL Server sparse columns
- Document check constraints
- Breaking change note on DbSet not implement IAsyncEnumerable
- Update translation for SQL Server string.IsNullOrWhitespace
- Improvements to context pooling docs
- Document snapshot model initialization breaking change
- Document extensions breaking changes
- Query
- SqlExpressionFactory doesn't apply type mapping to InExpression
- InMemory: Expand owned navigation as optional always
- Fix to #26166 - Idempotent migration script generates problematic temporal table alter statement
- Respect AsNoTrackingWithIdentityResolution in AsTracking method
- Throw for FromSql+Any pattern which has been mutated
- Model building
- Miscellaneous
- Scaffolding
- Tooling
- Type mapping
- DbContext
- Migrations
- Dependency updates
- Cosmos
Builds to use
- The daily builds are the most up-to-date available.
- The daily builds now contain what will be the 6.0 GA release.
- Preview: EF Core 6.0 RC1
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.10
- LTS: EF Core 3.1.19
Releases
See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
October 21, 2021
Expand to see status from this week...
Highlights
- Zero issues open for EF Core 6.0 GA
- Full documentation and samples: https://aka.ms/efcore-whatsnew60
- Get the 6.0 daily build: https://aka.ms/efcore-daily-builds
- New on the .NET Blog: Prime your flux capacitor: SQL Server temporal tables in EF Core 6.0
- Sessions at .NET Conf 2021:
- Day 1: What's New in EF Core 6
- Day 2: Modern data APIs with EF Core and GraphQL
The team is now focused on 7.0 planning, internal quality improvements, and documentation.
Latest Community Standup:
In the latest Entity Framework Community Standup, the EF team is joined by Rick Anderson (@Rick-Anderson), document writer for ASP.NET Core. We get back to basics, and look at EF Core in Razor Pages and MVC applications.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021. We have now completed all work for EF Core 6.0; please try
the daily build now and help us weed out any remaining bugs.
Each high-level area for EF Core 6.0 is linked in the table below together with its final status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | Complete |
JSON columns | Cut | |
ColumnAttribute.Order | Complete | |
Performance | Infrastructure and tests | Complete |
Compiled models | Complete | |
TechEmpower Fortunes | Complete | |
Linker/AOT | Scoped/Complete | |
Migrations and deployment | Migrations bundles | Complete |
Managing migrations | Scoped/Complete | |
Improve existing features | EF6 query parity | Scoped/Complete |
Value objects | Cut | |
Cosmos database provider | Expanded/Complete | |
Public model conventions | Cut | |
Zero bug balance | Scoped/Complete | |
.NET integration | Enhancements to System.Data | Complete |
Enhancements to Microsoft.Data.Sqlite | Complete | |
Nullable reference types | Complete | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 6.0 RC2
EF Core 6.0 RC2 is available from NuGet. The RC2 release contains all the features planned for EF Core 6.0.
Consider using the daily builds to get fixes made for GA since the RC2 release was built.
See What's New in EF Core 6.0 for a detailed look at all the new features in EF Core 6.0. In summary, the following new features are included in EF Core 6.0:
- Allow defining column order via [ColumnAttribute.Order] when creating tables
- SQL Server temporal tables
- Migrations Bundles
- Cosmos: Add basic support for collections and dictionaries of primitive types
- Cosmos: Add translators for member/methods which map to built-in functions
- Cosmos: Distinct operator in queries
- Cosmos: Diagnostic events including statistics (query cost, activity id)
- Cosmos: API to configure throughput
- Cosmos: Configure TTL per entity/entity type/container
- Cosmos: FromSql support
- Cosmos: Resolve HttpClientFactory from DI if available
- Cosmos: Azure Cosmos DB provider should default to implicit ownership
- Detect simple join tables in reverse engineering and create many-to-many relationships
- Translate GroupBy followed by FirstOrDefault over group
- Support ability to select top N of each group
- Remove unnecessary last column in ORDER BY when joining for collection
- Add IColumnModification and IModificationCommand to allow the implementations to be replaced easily
- Non-constant property name in EF.Property (and indexer property)
- Make the non-thread-safety of DbContext more visible
- Store options in ServiceProviderCache
- Adopt MIT license
- Warn when uniquifying an FK column name
- Preserve DeleteBehavior when scaffolding a database created by EF Core
- Add overloads of UsingEntity() that take advantage of conventions
- Log provider version in addition to EF Core version
- Indicate where SQL comes from (SaveChanges, LINQ query, etc.) in IDbCommandInterceptor
- Register a scoped DbContext automatically when using AddDbContextFactory
- Add extension methods to enable simpler adding and configuration of EF Core providers
- Simplify HasConversion API
- Support Timeout.InfiniteTimeSpan in SetCommandTimeout
- Support suspending/bypassing the configured DbContext's IExecutionStrategy
- Support 64-bit Identity seed values
- Warn when saving an optional dependent with all null properties when table splitting
- Remove existing schema when HasSchema(null) is called
- Add equivalent of IRelationalDbContextOptionsBuilderInfrastructure to in-memory provider
- Make HasDbFunction on function override implicit ToTable mapping
- Make IScaffoldingModelFactory public
- Uniquify and validate Check Constraint name
- Translate MathF members to SQL functions on SQLite
- Pre-convention model configuration
- Mechanism/API to specify a default conversion for any property of a given type in the model
- Support Ignore() for non entity type candidates
- Reduce EF Core application startup time via compiled models
- Add TagWith overload that gets the filename and line number automatically
- Translate bool ToString for SQL Server
- Scaffold from a database and generate C# 8 nullable reference types
- Translate Substring with single parameter
- Support split queries for projections containing non-navigation collections
- Improve EF Core performance on TechEmpower Fortunes
- Support empty constructor and DbContextOptions constructor in DbContextFactory
- Make DbContext pooling accessible to non-DI applications
- Increase the default maximum context pool size to 1024
- Improvements to optional dependents sharing table with principal
- Detection of trailing underscores when matching backing fields to properties
- Performance gain by recycling relational and ADO.NET objects in query execution
- Allow explicit temporary values to be stored in entity instances
- Default options added to all ToDebugString methods
- Improved logging of array parameter values
- Preserve synchronization context in SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with System.Linq.Async
- More flexible free-text search
- 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
And for Microsoft.Data.Sqlite:
- Support the new BCL DateOnly and TimeOnly structs for SQLite
- Fall back to case-insensitive matches for
SqliteDataReader[<string>]
- Add Span overloads to SqliteBlob
- Pool Connections
See GitHub for all issues resolved in RC2.
EF Core 5.0.11
The latest patch release of EF Core 5.0 is available on NuGet now. This is a patch release of EF Core 5.0 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 5.0.10.
EF Core 3.1.20
EF Core 3.1.20 is available on NuGet now. This is a patch release of EF Core 3.1 containing only important bug fixes:
Pull requests merged since the last update
Community contributions
- @sdanyliv: Updated linq2db.EntityFrameworkCore section with support EF Core 2
- @loic-sharma: Add missing space
- @lateneze: Update entity-state.md
- @SitholeWB: Add Pagination.EntityFrameworkCore.Extensions
- @AinoraZ: Fixed typo in "What's New in EF Core 6.0" page
Many thanks to all our contributors!
EF Core
- Query
- More GroupBy tests
- Fix to #25954 - [EFCore 6.0] [Firebird] Problem with test NorthwindMiscellaneousQueryTestBase.Entity_equality_on_subquery_with_null_check
- Fix to #26271 - Temporal history table name always based on entity type name, not table name
- Make Projection_AsEnumerable_projection deterministic
- Update odata tests to 8.0
- Some regression tests for OData related issues
- Removing unnecessary spatial test for InMemory
- Fix to #19356 - Query: Add more tests for Queryable.Reverse
- Fix to #26353 - Test Subquery_with_Distinct_Skip_FirstOrDefault_without_OrderBy is non-deterministic
- Fix to #26357 - SqlNullabilityProcessor.VisitSqlFunction, Nullability of SUM function
- No test left behind
- Documentation
- Add TL;DR section for daily builds
- Document metadata breaking changes
- Document provider-specific breaking changes
- Also mention NRTs in a 5.0 breaking change
- Update breaking-changes.md
- Document PrecisionAttribute, UnicodeAttribute and SQL Server UTF8
- Document remaining 6.0 translations
- Doc updates for breaking changes and switching to daily GA build
- Breaking change for nested optional dependents sharing table with no required properties
- Document DbFunctionBuilder.HasSchema(null) breaking change
- Model building
- Miscellaneous
- Tooling
- Type mapping
- Migrations
- Cosmos
- Change tracking
- SaveChanges
Builds to use
- The daily builds are the most up-to-date available.
- The daily builds now contain what will be the 6.0 GA release.
- Preview: EF Core 6.0 RC2
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.11
- LTS: EF Core 3.1.20
Releases
See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
November 4, 2021
Expand to see status from this week...
Highlights
- EF Core 6.0 GA is out this month!
- The same code as we will ship for 6.0 GA are available now from the daily build feed: https://aka.ms/efcor-daily-builds
- Full documentation and samples: https://aka.ms/efcore-whatsnew60
- Learn more at .NET Conf 2021:
- Day 1: What's New in EF Core 6
- Day 2: Modern data APIs with EF Core and GraphQL
- Planning for EF Core 7.0 is well underway. Expect to hear more in the coming weeks.
- Internal quality work and documentation is ongoing.
Latest Community Standup: Noda Time
In the latest Entity Framework Community Standup, the EF team talks about Noda Time with Jon Skeet (@jskeet). Noda Time is an alternative date and time API for .NET. It helps you to think about your data more clearly, and express operations on that data more precisely. We talk about Noda Time in general and the problems it solves, as well as how it can be used in LINQ queries and updates when using EF Core with SQL Server, PostgreSQL, or SQLite.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 6.0
EF Core 6.0 will be the next release after EF Core 5.0. It will be released alongside .NET 6 in November 2021. We have now completed all work for EF Core 6.0; please try
the daily build now and help us weed out any remaining bugs.
Each high-level area for EF Core 6.0 is linked in the table below together with its final status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | Complete |
JSON columns | Cut | |
ColumnAttribute.Order | Complete | |
Performance | Infrastructure and tests | Complete |
Compiled models | Complete | |
TechEmpower Fortunes | Complete | |
Linker/AOT | Scoped/Complete | |
Migrations and deployment | Migrations bundles | Complete |
Managing migrations | Scoped/Complete | |
Improve existing features | EF6 query parity | Scoped/Complete |
Value objects | Cut | |
Cosmos database provider | Expanded/Complete | |
Public model conventions | Cut | |
Zero bug balance | Scoped/Complete | |
.NET integration | Enhancements to System.Data | Complete |
Enhancements to Microsoft.Data.Sqlite | Complete | |
Nullable reference types | Complete | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
EF Core 6.0 RC2
EF Core 6.0 RC2 is available from NuGet. The RC2 release contains all the features planned for EF Core 6.0.
Consider using the daily builds to get fixes made for GA since the RC2 release was built.
See What's New in EF Core 6.0 for a detailed look at all the new features in EF Core 6.0. In summary, the following new features are included in EF Core 6.0:
- Allow defining column order via [ColumnAttribute.Order] when creating tables
- SQL Server temporal tables
- Migrations Bundles
- Cosmos: Add basic support for collections and dictionaries of primitive types
- Cosmos: Add translators for member/methods which map to built-in functions
- Cosmos: Distinct operator in queries
- Cosmos: Diagnostic events including statistics (query cost, activity id)
- Cosmos: API to configure throughput
- Cosmos: Configure TTL per entity/entity type/container
- Cosmos: FromSql support
- Cosmos: Resolve HttpClientFactory from DI if available
- Cosmos: Azure Cosmos DB provider should default to implicit ownership
- Detect simple join tables in reverse engineering and create many-to-many relationships
- Translate GroupBy followed by FirstOrDefault over group
- Support ability to select top N of each group
- Remove unnecessary last column in ORDER BY when joining for collection
- Add IColumnModification and IModificationCommand to allow the implementations to be replaced easily
- Non-constant property name in EF.Property (and indexer property)
- Make the non-thread-safety of DbContext more visible
- Store options in ServiceProviderCache
- Adopt MIT license
- Warn when uniquifying an FK column name
- Preserve DeleteBehavior when scaffolding a database created by EF Core
- Add overloads of UsingEntity() that take advantage of conventions
- Log provider version in addition to EF Core version
- Indicate where SQL comes from (SaveChanges, LINQ query, etc.) in IDbCommandInterceptor
- Register a scoped DbContext automatically when using AddDbContextFactory
- Add extension methods to enable simpler adding and configuration of EF Core providers
- Simplify HasConversion API
- Support Timeout.InfiniteTimeSpan in SetCommandTimeout
- Support suspending/bypassing the configured DbContext's IExecutionStrategy
- Support 64-bit Identity seed values
- Warn when saving an optional dependent with all null properties when table splitting
- Remove existing schema when HasSchema(null) is called
- Add equivalent of IRelationalDbContextOptionsBuilderInfrastructure to in-memory provider
- Make HasDbFunction on function override implicit ToTable mapping
- Make IScaffoldingModelFactory public
- Uniquify and validate Check Constraint name
- Translate MathF members to SQL functions on SQLite
- Pre-convention model configuration
- Mechanism/API to specify a default conversion for any property of a given type in the model
- Support Ignore() for non entity type candidates
- Reduce EF Core application startup time via compiled models
- Add TagWith overload that gets the filename and line number automatically
- Translate bool ToString for SQL Server
- Scaffold from a database and generate C# 8 nullable reference types
- Translate Substring with single parameter
- Support split queries for projections containing non-navigation collections
- Improve EF Core performance on TechEmpower Fortunes
- Support empty constructor and DbContextOptions constructor in DbContextFactory
- Make DbContext pooling accessible to non-DI applications
- Increase the default maximum context pool size to 1024
- Improvements to optional dependents sharing table with principal
- Detection of trailing underscores when matching backing fields to properties
- Performance gain by recycling relational and ADO.NET objects in query execution
- Allow explicit temporary values to be stored in entity instances
- Default options added to all ToDebugString methods
- Improved logging of array parameter values
- Preserve synchronization context in SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with System.Linq.Async
- More flexible free-text search
- 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
And for Microsoft.Data.Sqlite:
- Support the new BCL DateOnly and TimeOnly structs for SQLite
- Fall back to case-insensitive matches for
SqliteDataReader[<string>]
- Add Span overloads to SqliteBlob
- Pool Connections
See GitHub for all issues resolved in RC2.
EF Core 5.0.11
The latest patch release of EF Core 5.0 is available on NuGet now. This is a patch release of EF Core 5.0 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 5.0.10.
EF Core 3.1.20
EF Core 3.1.20 is available on NuGet now. This is a patch release of EF Core 3.1 containing only important bug fixes:
Pull requests merged since the last update
Community contributions
- @0xced: Do not scaffold a default constructor when OnConfiguring is suppressed
- @Sickae: Fixed syntax error in sample code
- @ErikEJ: Add NuGet links
Many thanks to all our contributors!
EF Core
- Documentation
- Use remarks in XML docs
- Check and update service lifetime docs
- Add column ordering to What's New
- Rearrange modeling code samples in thematic structure
- Fixed formatting and moved to end
- Add documentation for Compiled models
- Document compiled queries
- Document SQLite connection pool breaking change
- Document scaffolding of many-to-many as a breaking change
- Document HasColumnOrder
- Adding more breaking changes info for EF Core 6.0
- Document shared-type entity types
- Query
- Fix to #26397 - Query/Test: convert the "no_data" tests in NorthwindAggregateOperatorsQueryTestBase to use AssertQuery
- Fix to #26344 - SqlNullabilityProcessor and COALESCE with more than two arguments
- Query: Throw exception for null key value in non-tracking
- Query: Remove obsoleted code
- Query: Convert IReadOnlyCollection.Count to Queryable.Count()
- Identify WITH as generally composable in FromSql
- Query: Identify Contains on IReadOnlySet/IImmutableSet
- Miscellaneous
- Dependencies
Builds to use
- The daily builds are the most up-to-date available.
- The daily builds now contain what will be the 6.0 GA release.
- Preview: EF Core 6.0 RC2
- Using the daily builds or previews is a great way to find issues and provide feedback as early as possible. The sooner we get such feedback, the more likely it will be actionable before the next official release.
- Current: EF Core 5.0.11
- LTS: EF Core 3.1.20
Releases
See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
November 18, 2021
Expand to see status from this week...
Highlights
- EF Core 6.0 GA is released on NuGet!
- See What's New in EF Core 6.0 for full documentation and samples.
- .NET Conf talks:
- See EF Core accessing SQLite in Blazor WebAssembly on New Blazor WebAssembly capabilities in .NET 6
- "I was just thinking 'as soon as blazor has EF, it's game over'"
- "Blazor WebAssembly + EF + SQL Lite is just a game changer for me."
- Modern data APIs with EF Core and GraphQL
- "Awesome. I really see a ton of use cases for GraphQL with EF."
- "Super"
- What's New in EF Core 6
- "Performance: +1, Configure Conventions: +1, Migration Bundles: +1, Temporal Table Support: +1. Killing it with each release."
- "Loving the ef migration bundle option."
- See EF Core accessing SQLite in Blazor WebAssembly on New Blazor WebAssembly capabilities in .NET 6
- The plan for EF Core 7.0 (EF7) is being reviewed internally. Expect to hear more in the coming weeks.
- Patching for 6.0.1, internal quality work and documentation is ongoing.
Latest Community Standup: EF Core 6.0 Release Party
In the latest Entity Framework Community Standup, the EF team chats with community stalwarts
Julie Lerman (@julielerman), Jon P Smith (@JonPSmith), and Erik Ejlskov Jensen (@ErikEJ) pick their favorite features in EF Core 6.0, and we take a look at the GitHub samples for those features.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 6.0
EF Core 6.0 was released to NuGet on November 8, alongside .NET 6. Each high-level area for EF Core 6.0 is linked in the table below together with its final status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | Complete |
JSON columns | Cut | |
ColumnAttribute.Order | Complete | |
Performance | Infrastructure and tests | Complete |
Compiled models | Complete | |
TechEmpower Fortunes | Complete | |
Linker/AOT | Scoped/Complete | |
Migrations and deployment | Migrations bundles | Complete |
Managing migrations | Scoped/Complete | |
Improve existing features | EF6 query parity | Scoped/Complete |
Value objects | Cut | |
Cosmos database provider | Expanded/Complete | |
Public model conventions | Cut | |
Zero bug balance | Scoped/Complete | |
.NET integration | Enhancements to System.Data | Complete |
Enhancements to Microsoft.Data.Sqlite | Complete | |
Nullable reference types | Complete | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
See What's New in EF Core 6.0 for a detailed look at all the new features in EF Core 6.0. In summary, the following new features are included in EF Core 6.0:
- Allow defining column order via [ColumnAttribute.Order] when creating tables
- SQL Server temporal tables
- Migrations Bundles
- Cosmos: Add basic support for collections and dictionaries of primitive types
- Cosmos: Add translators for member/methods which map to built-in functions
- Cosmos: Distinct operator in queries
- Cosmos: Diagnostic events including statistics (query cost, activity id)
- Cosmos: API to configure throughput
- Cosmos: Configure TTL per entity/entity type/container
- Cosmos: FromSql support
- Cosmos: Resolve HttpClientFactory from DI if available
- Cosmos: Azure Cosmos DB provider should default to implicit ownership
- Detect simple join tables in reverse engineering and create many-to-many relationships
- Translate GroupBy followed by FirstOrDefault over group
- Support ability to select top N of each group
- Remove unnecessary last column in ORDER BY when joining for collection
- Add IColumnModification and IModificationCommand to allow the implementations to be replaced easily
- Non-constant property name in EF.Property (and indexer property)
- Make the non-thread-safety of DbContext more visible
- Store options in ServiceProviderCache
- Adopt MIT license
- Warn when uniquifying an FK column name
- Preserve DeleteBehavior when scaffolding a database created by EF Core
- Add overloads of UsingEntity() that take advantage of conventions
- Log provider version in addition to EF Core version
- Indicate where SQL comes from (SaveChanges, LINQ query, etc.) in IDbCommandInterceptor
- Register a scoped DbContext automatically when using AddDbContextFactory
- Add extension methods to enable simpler adding and configuration of EF Core providers
- Simplify HasConversion API
- Support Timeout.InfiniteTimeSpan in SetCommandTimeout
- Support suspending/bypassing the configured DbContext's IExecutionStrategy
- Support 64-bit Identity seed values
- Warn when saving an optional dependent with all null properties when table splitting
- Remove existing schema when HasSchema(null) is called
- Add equivalent of IRelationalDbContextOptionsBuilderInfrastructure to in-memory provider
- Make HasDbFunction on function override implicit ToTable mapping
- Make IScaffoldingModelFactory public
- Uniquify and validate Check Constraint name
- Translate MathF members to SQL functions on SQLite
- Pre-convention model configuration
- Mechanism/API to specify a default conversion for any property of a given type in the model
- Support Ignore() for non entity type candidates
- Reduce EF Core application startup time via compiled models
- Add TagWith overload that gets the filename and line number automatically
- Translate bool ToString for SQL Server
- Scaffold from a database and generate C# 8 nullable reference types
- Translate Substring with single parameter
- Support split queries for projections containing non-navigation collections
- Improve EF Core performance on TechEmpower Fortunes
- Support empty constructor and DbContextOptions constructor in DbContextFactory
- Make DbContext pooling accessible to non-DI applications
- Increase the default maximum context pool size to 1024
- Improvements to optional dependents sharing table with principal
- Detection of trailing underscores when matching backing fields to properties
- Performance gain by recycling relational and ADO.NET objects in query execution
- Allow explicit temporary values to be stored in entity instances
- Default options added to all ToDebugString methods
- Improved logging of array parameter values
- Preserve synchronization context in SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with System.Linq.Async
- More flexible free-text search
- 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
And for Microsoft.Data.Sqlite:
- Support the new BCL DateOnly and TimeOnly structs for SQLite
- Fall back to case-insensitive matches for
SqliteDataReader[<string>]
- Add Span overloads to SqliteBlob
- Pool Connections
See GitHub for all issues resolved in 6.0.
EF Core 5.0.12
The latest patch release of EF Core 5.0 is available on NuGet now. This is a patch release of EF Core 5.0 containing only important bug fixes:
EF Core 3.1.21
EF Core 3.1.21 is available on NuGet now. This is a patch release of EF Core 3.1 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 3.1.20.
Pull requests merged since the last update
Community contributions
- @bobbyangers: Fix MigrationsSqliteTest tests
- @bobbyangers: CREATE SEQUENCE for decimal (sql server)
- @mburleigh: Fix typo
- @yosoyhabacuc: SqlServer: Add translation for string.IndexOf(string, int)
- @stevendarby: Use EqualsExact in DefaultDateTimeOffsetValueComparer
- @bschaeublin: Cache Eventargs in SQLiteConnection
- @vonzshik: Cache ParamCount together with a statement for SQLite
- @stefannikolei: Set default capacity of prepared Statements
- @simon-reynolds: Correct SQL in many-to-many scaffold sample
Many thanks to all our contributors!
EF Core
- Documentation
- Add note on Cosmos in the owned types section
- Document Migration Bundles
- Fix links
- Update top-level docs for 6.0 release
- Initial update to run samples on .NET 6 with EF Core 6.0
- Correct Stirling -> Sterling
- Upgrade Saving sample to 6.0.0
- Typos
- Update some extension versions
- Document AutoInclude
- Update provider versions to 6.0
- Fixes to 6.0 what's new page
- Fix some docs bugs
- Update nullable reference type notes for 6.0
- End of life 2.1
- Update daily builds for EF7
- Miscellaneous
- Evolve null-checking approach in extensions
- Evolve null-checking approach in SQL Server
- Evolve null-checking approach in Relational
- Evolve null-checking approach in EFCore
- Remove quirks
- Make concurrent test use different connections
- Evolve null-checking approach in SQLite provider
- Remove quirks from main
- Query
- Cleanup regarding TODO notes
- (6.0.1) Copy client projections when updating SelectExpression
- (6.0.1) Optimize Contains to Any recursively
- More VB CompareString normalization
- Avoid pushdown when joining with a subquery which can be lifted out
- (6.0.1) Query: Update table references in pushdown after moving table references to subquery
- Introduce method for providing brackets around SqlExpression based on operator precedence
- Model building
- (6.0.1) Avoid NRE in ForeignKeyAttributeConvention
- (6.0.1) Allow non-nullable value comparer to be applied on nullable properties
- (6.0.1) Match indexer properties correctly
- (6.0.1) Avoid infinite loop when finding principal in circular relationships
- (6.0.1) Return null schema for unmapped entity types
- (6.0.1) Use the correct builder when attaching indexes on nested owned entity types
- (6.0.1) Update the foreign key builder after IsRequired()
- Scaffolding
- Dependency Updates
- Migrations
- Tooling
- SaveChanges
- Cosmos
Microsoft.Data.Sqlite
- (6.0.1) Clean up on application exit
- (6.0.1) Use read-write lock to protect SQLite concurrent pool accesses
- (6.0.1) Handle more nulls in ApplicationDataHelper
Builds to use
- The daily builds are the most up-to-date available.
- The daily builds now contain all issues merged for 6.0.x patch releases, as well as new code to be released in EF7 preview 1.
- LTS: EF Core 6.0.0
- Supported: EF Core 5.0.12
- Supported: EF Core 3.1.21
Releases
See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
December 2, 2021
Expand to see status from this week...
Highlights
- In case you missed it, EF Core 6.0 GA is available on NuGet!
- Well over 400,000 NuGet downloads in the first three weeks!
- New Get to Know EF Core 6 post on the .NET Blog.
- Community Standup: Hot Chocolate 12 and GraphQL 2021
- The plan for EF Core 7.0 (EF7) is being reviewed by management next week. We will publish it soon after.
- Patching for 6.0.2, internal quality work, and documentation is ongoing.
Latest Community Standup: Hot Chocolate 12 and GraphQL 2021
In the last Entity Framework Community Standup of the year, the EF team is joined by Michael Staib (@michael_staib), who shows us what's new in Hot Chocolate 12 and GraphQL 2021. Hot Chocolate 12 allows for more schema-building options with deeper integrations into EF core. Hot Chocolate has already implemented the new GraphQL October 2021 spec, and we will explore the new capabilities. We now support the complete stream and defer spec and will look into these new data fetching capabilities.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 6.0
EF Core 6.0 was released to NuGet on November 8, alongside .NET 6. Each high-level area for EF Core 6.0 is linked in the table below together with its final status.
EF Core 6.0 Theme | Feature | Status |
---|---|---|
Highly requested features | SQL Server temporal tables | Complete |
JSON columns | Cut | |
ColumnAttribute.Order | Complete | |
Performance | Infrastructure and tests | Complete |
Compiled models | Complete | |
TechEmpower Fortunes | Complete | |
Linker/AOT | Scoped/Complete | |
Migrations and deployment | Migrations bundles | Complete |
Managing migrations | Scoped/Complete | |
Improve existing features | EF6 query parity | Scoped/Complete |
Value objects | Cut | |
Cosmos database provider | Expanded/Complete | |
Public model conventions | Cut | |
Zero bug balance | Scoped/Complete | |
.NET integration | Enhancements to System.Data | Complete |
Enhancements to Microsoft.Data.Sqlite | Complete | |
Nullable reference types | Complete | |
Experiments and investigations | SqlServer.Core | Ongoing |
GraphQL | Ongoing | |
DataVerse | Ongoing |
See What's New in EF Core 6.0 for a detailed look at all the new features in EF Core 6.0. In summary, the following new features are included in EF Core 6.0:
- Allow defining column order via [ColumnAttribute.Order] when creating tables
- SQL Server temporal tables
- Migrations Bundles
- Cosmos: Add basic support for collections and dictionaries of primitive types
- Cosmos: Add translators for member/methods which map to built-in functions
- Cosmos: Distinct operator in queries
- Cosmos: Diagnostic events including statistics (query cost, activity id)
- Cosmos: API to configure throughput
- Cosmos: Configure TTL per entity/entity type/container
- Cosmos: FromSql support
- Cosmos: Resolve HttpClientFactory from DI if available
- Cosmos: Azure Cosmos DB provider should default to implicit ownership
- Detect simple join tables in reverse engineering and create many-to-many relationships
- Translate GroupBy followed by FirstOrDefault over group
- Support ability to select top N of each group
- Remove unnecessary last column in ORDER BY when joining for collection
- Add IColumnModification and IModificationCommand to allow the implementations to be replaced easily
- Non-constant property name in EF.Property (and indexer property)
- Make the non-thread-safety of DbContext more visible
- Store options in ServiceProviderCache
- Adopt MIT license
- Warn when uniquifying an FK column name
- Preserve DeleteBehavior when scaffolding a database created by EF Core
- Add overloads of UsingEntity() that take advantage of conventions
- Log provider version in addition to EF Core version
- Indicate where SQL comes from (SaveChanges, LINQ query, etc.) in IDbCommandInterceptor
- Register a scoped DbContext automatically when using AddDbContextFactory
- Add extension methods to enable simpler adding and configuration of EF Core providers
- Simplify HasConversion API
- Support Timeout.InfiniteTimeSpan in SetCommandTimeout
- Support suspending/bypassing the configured DbContext's IExecutionStrategy
- Support 64-bit Identity seed values
- Warn when saving an optional dependent with all null properties when table splitting
- Remove existing schema when HasSchema(null) is called
- Add equivalent of IRelationalDbContextOptionsBuilderInfrastructure to in-memory provider
- Make HasDbFunction on function override implicit ToTable mapping
- Make IScaffoldingModelFactory public
- Uniquify and validate Check Constraint name
- Translate MathF members to SQL functions on SQLite
- Pre-convention model configuration
- Mechanism/API to specify a default conversion for any property of a given type in the model
- Support Ignore() for non entity type candidates
- Reduce EF Core application startup time via compiled models
- Add TagWith overload that gets the filename and line number automatically
- Translate bool ToString for SQL Server
- Scaffold from a database and generate C# 8 nullable reference types
- Translate Substring with single parameter
- Support split queries for projections containing non-navigation collections
- Improve EF Core performance on TechEmpower Fortunes
- Support empty constructor and DbContextOptions constructor in DbContextFactory
- Make DbContext pooling accessible to non-DI applications
- Increase the default maximum context pool size to 1024
- Improvements to optional dependents sharing table with principal
- Detection of trailing underscores when matching backing fields to properties
- Performance gain by recycling relational and ADO.NET objects in query execution
- Allow explicit temporary values to be stored in entity instances
- Default options added to all ToDebugString methods
- Improved logging of array parameter values
- Preserve synchronization context in SaveChangesAsync
- Translate String.Concat with multiple arguments
- Smoother integration with System.Linq.Async
- More flexible free-text search
- 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
And for Microsoft.Data.Sqlite:
- Support the new BCL DateOnly and TimeOnly structs for SQLite
- Fall back to case-insensitive matches for
SqliteDataReader[<string>]
- Add Span overloads to SqliteBlob
- Pool Connections
See GitHub for all issues resolved in 6.0.
EF Core 5.0.12
The latest patch release of EF Core 5.0 is available on NuGet now. This is a patch release of EF Core 5.0 containing only important bug fixes:
EF Core 3.1.21
EF Core 3.1.21 is available on NuGet now. This is a patch release of EF Core 3.1 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 3.1.20.
Pull requests merged since the last update
Community contributions
- @jaliyaudagedara: Additional tests for Temporal tables
- @ZaqueuCavalcante" Fix some markdown language syntax highlights
- @MaxDZ8 Mentioning Laraue.EfCoreTriggers
- @nbarbettini Fix typo in disconnected-entities.md
- @svick Simplify code
- @ErikEJ Add additional extension
Many thanks to all our contributors!
EF Core
- Query
- No skipped complex navigation tests
- Defer inline-ing owned navigation expansion till all joins are generated
- Test mechanism to automatically rewrite baselines in source code
- Throw error for unhandled derived query root expression
- Avoid parethesis around binary operations when used with AND/OR
- Expression bodies for query test base classes
- Fix double negation in SQL generation
- Miscellaneous
- Dependency Updates
- Model building
- Documentation
- SaveChanges
Builds to use
- The daily builds are the most up-to-date available.
- The daily builds now contain all issues merged for 6.0.x patch releases, as well as new code to be released in EF7 preview 1.
- LTS: EF Core 6.0.0
- Supported: EF Core 5.0.12
- Supported: EF Core 3.1.21
Releases
See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.
December 16, 2021
Expand to see status from this week...
Highlights
- The plan for EF7 is published to our docs!
- As always, feedback is greatly appreciated.
- This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
- In case you missed it, EF Core 6.0 GA is available on NuGet!
- Close to 800,000 NuGet downloads already!
- The 6.0.1 patch release of Entity Framework Core is available on NuGet now. This release contains 17 important bug fixes for EF Core and Microsoft.Data.Sqlite 6.0.
Latest Community Standup: Hot Chocolate 12 and GraphQL 2021
In the last Entity Framework Community Standup of the year, the EF team is joined by Michael Staib (@michael_staib), who shows us what's new in Hot Chocolate 12 and GraphQL 2021. Hot Chocolate 12 allows for more schema-building options with deeper integrations into EF core. Hot Chocolate has already implemented the new GraphQL October 2021 spec, and we will explore the new capabilities. We now support the complete stream and defer spec and will look into these new data fetching capabilities.
The EF Core Community Standups are live-streamed about once every two weeks. This is your opportunity to interact with the EF team and others from the .NET data community. The videos are all uploaded to YouTube, so you can enjoy the goodness even if you can't join us live.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 7.0
EF Core 7.0 (EF7) will be the next release after EF Core 6.0. It will be released alongside .NET 7 in November 2022.
The EF Core 7.0 Plan is available publicly in our documentation. As always, feedback is greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level area for EF Core 7.0 is linked in the table below together with its current high-level status.
Burndown for EF Core 7.0
This is the burndown chart the team uses internally to track progress towards EF Core 7.0.
- The gray bar at the top represents all the issues already fixed for EF7.
- The "Closed" category includes only issues that have been fixed and then closed, not issues closed for any other reason.
- The "Fixed" category includes issues that have been fixed, but where the change has not yet been merged to the "main" branch.
- As always, we are aiming to be feature-complete by the beginning of September.
EF Core 6.0.1
The latest patch release of EF Core 6.0 is available on NuGet now. This is a patch release of EF Core 6.0 containing only important bug fixes:
- DateTime with z suffix is not respected when reading entities
- 'The object has been removed from the model.' when building model
- EF Core 6.0 regression when using HasDefaultSchema() with ToTable(null)
- Variable names must be unique within a query batch or stored procedure
- Stack overflow when using circular composite key dependencies
- SqliteConnectionFactory.cs is not thread-safe
- EF Core 6.0 InvalidOperationException: The object has been removed from the model
- Subquery.Contains throws when the type of item is value type
- Query with n:m relation adds non-existent column
- InvalidOperationException "sequence contains no matching element" in TableReferenceExpression.get_Table
- Update from 5.0.1 to 6.0breaks all SqliteConnection
- Scaffolder throws error if junction table foreign key columns have identical names
- EFCore 6 - NullReferenceException upon EnsureDeleted
- Non-nullable value comparer can't be applied on nullable type
- Exception in SQL server query in EF Core 6, looks related to HasQueryFilter(), worked in EF Core 5
- RC2 Sqlite provider no longer clears temporary files on exit
- The dotnet ef dbcontext scaffold command does not print all expected logs
EF Core 5.0.13
EF Core 5.0.13 is available on NuGet now. This is a patch release of EF Core 5.0 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 5.0.12.
EF Core 3.1.22
EF Core 3.1.22 is available on NuGet now. This is a patch release of EF Core 3.1 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 3.1.21.
Pull requests merged since the last update
Community contributions
- @EamonHetherton: Test and fix for Issue #26742
- @ErikEJ: Log warning when credentials used for reverse engineering does not have view definition rights
- @HenkKin: Added EntityCloner.Microsoft.EntityFrameworkCore
- @esbenbach: Added labels and reference to the counters file
- @VahidFarahmandian: Update whatsnew.md
- @yecril71pl: Relationships: typos: can not, many to many
- @meesaltena: Fixed two typos
- @jeremycook: Clarify that the NRT feature was unsupported before EF Core 6
- @danielkraut: Fix links from Breaking changes to What's new
Many thanks to all our contributors!
EF Core
- Miscellaneous
- Automatic refactorings based on static analysis of EFCore project
- Tiny cleanup
- Static analysis: use char instead of string literals
- Static analysis: remove trailing commas
- Static analysis: Use ??=
- Static analysis: conditional cleanup
- Static analysis: miscellaneous "code quality"
- Static analysis: redundancies in symbol declarations
- Static analysis: use null propagation
- Static analysis: remove redundant nullable warning suppression
- Static analysis: make members static
- Static analysis: using declarations and await using
- Static analysis: use range indexer and index from end
- Static analysis: minor small changes
- Static analysis: spelling
- Static analysis: inconsistent naming and namespaces
- Static analysis: deconstruction
- Distinguish cancellation from failure
- Static analysis: revert tail recursion unrolling
- (6.0.2) Call sync connection close instead of async
- Model building
- Documentation
- Query
- Change tracking
- SaveChanges
Builds to use
- The daily builds are the most up-to-date available.
- The daily builds now contain all issues merged for 6.0.x patch releases, as well as new code to be released in EF7 preview 1.
- LTS: EF Core 6.0.1
- Supported: EF Core 5.0.13
- Supported: EF Core 3.1.22
Releases
See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.
More Information
See the top of this issue for links to more information.
Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.