Entity Framework Weekly Status Updates (2020)
ajcvickers opened this issue · 44 comments
Weekly status updates for 2021
Expand to see additional information from the end of 2020...
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 from the week.
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 5.0.0
- Issues fixed for EF Core 5.0.1
- Issues fixed for EF Core 5.0.2 but not yet shipped
- 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 but not yet shipped
- 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.
Weekly status updates for 2019
January 9, 2020
Expand to see status from this week...
We're back with weekly updates after a break for the holiday period.
What are we doing now?
Critical bugs in 3.1 are now being considered for patch releases. The first patch release is scheduled for later this month.
Planning for the EF Core "5.0" release (i.e. the one after 3.1) is being finalized and we hope to post an overview in the next couple of weeks.
Work on several major features planned for 5.0 has already begun. See the pull requests section below for details. The 115+ issues already fixed for 5.0 can be found on GitHUb
In addition, we are working on:
- Technical debt
- Code cleanup, additional testing, test reliability, etc.
- Documentation
- Updating docs to be cover changes in the 3.0 and 3.1 releases
- An overhaul of the getting started docs to make them more approachable/easier to follow
- Reorganization of docs to make things easier to find and to add cross-references
- Adding more details and clarifications to existing docs
- Updating the samples and adding more examples
Builds to use
- The daily builds are the most up-to-date available.
- Using the daily builds 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.
- We work hard to keep the daily builds in good shape by running over 50,000 tests per TFM for each build.
- Daily builds now contain work scheduled for release in EF Core 5.0.
- There are already 115 issues closed and merged for EF Core 5.0.
- Current and LTS: EF Core 3.1.0
New features in EF Core 5.0
As stated above, planning of 5.0 major features is ongoing, but in addition to bug fixes we have already merged a few small features/enhancements.
Simple way to get generated SQL
EF Core 5.0 introduces the ToQueryString
extension method which will return the SQL that EF Core will generate when executing a LINQ query. For example, the code:
var query = context.Set<Customer>().Where(c => c.City == city);
Console.WriteLine(query.ToQueryString())
results in this output when using the SQL Server database provider:
DECLARE p0 nvarchar(4000) = N'London';
SELECT [c].[CustomerID], [c].[Address], [c].[City], [c].[CompanyName], [c].[ContactName], [c].[ContactTitle], [c].[Country], [c].[Fax], [c].[Phone], [c].[PostalCode], [c].[Region]
FROM [Customers] AS [c]
WHERE [c].[City] = @__city_0
Notice that declarations for parameters of the correct type are also included in the output. This allows copy/pasting to SQL Server Management Studio, or similar tools, such that the query can be executed for debugging/analysis.
Pull requests over the holiday period
Community contributions
- @knom fixed alter database statements to handle complex names
- @svengeance implemented translation of byte array Length for SQL Server and SQLite
- @svengeance fixed a bug translating casting with "as"
- @Marusyk and @nmichels implemented translation for DATEFFROMPARTS on SQL Server: 19400 18630
- @ralmsdeveloper cleaned up SQL generation to remove an extra blank line
- @ralmsdeveloper cleaned up unused using directives
- @redoz fixed a typo in the change tracker documentation
- @bbrandt added EFCore.TimeTraveler to the extension list
- @MaxG117 added the Teradata.EntityFrameworkCore provider to the database provider list
- @ErikEJ updated the extensions page for 3.1
Many thanks to all our contributors!
EF Core
- Skip navigations (for many-to-many)
- Metadata for skip navigations
- Extract base interface for navigations
- Make skip navigation foreign key nullable and mutable
- Indexer properties (stretch goal for many-to-many)
- Initial support for indexer properties
- Public model building API for indexer properties
- Disallow backing fields for indexer properties
- Getter/setter support for indexer properties
- Shared-type entities (stretch goal for many-to-many)
- Initial metadata support for entity types that share a CLR type
- Query
- Improved design for relational null semantics
- Improved design for expansion of navigations
- Initial implementation of query DebugView and ToQueryString
- Update ToQueryString to generate runnable SQL with parameters
- Use SQLite CLI parameter syntax for ToQueryString
- Translate Queryable.Reverse
- Support access to a DbCommand setup as EF would do so to run a query
- Use Select 1 ordering when no other ordering exists
- Fix to translate Contains only when there is a server-side list
- Fix to unwind nested invocations recursively
- Removed public setters from custom expression properties
- Make partitions optional in RowNumberExpression
- Fix to DateTimeOffset type mapping
- Fix to translation of ternary operator with unknown type mapping
- Translation for Coalesce SQL function
- Convert Enumerable methods to Queryable methods after ToList, etc.
- Generate more efficient parameter lengths/types for strings on SQL Server
- Fix to lift pending collections when applying single result projection
- Fxi to [cast result of IndexOf appropriately for SQL Server
- Query regression testing: 19463 19268
- Change tracking
- Updates to state manager debug view based on design meeting feedback
- Fix to stop tracking deleted entity when supplanted by non-deleted instance
- Make EntityEntryGraphNodeState.TState mutable
- Fix to prevent temporary value from being left over when FK is later set to null
- Fix to stop deleting dependents when principal is detached
- Fix to stop nulling out FK properties when detaching a principal
- Fix to throw exception when identifying FK value is still unknown when saving changes
- Fix to initialize value converters lazily
- Fix to prevent stack overflow when lazy-loading
- Fix to correct "shared" annotation in state manager debug view
- Testing for TPH model with lazy-loading
- Model building
- Refactoring of ConventionScope
- Fixes to fixed length string mappings
- Fix to match more collection backing fields
- Fix to always store original value for properties mapped to unique indexes
- Tooling
- Other
- Use GitHub Actions for Cosmos provider testing
- Allow DbConnection or connection string to be changed on existing DbContext
- Fix ReplaceService to work with multiple registrations
- Use value converters when storing in the in-memory database
- Annotate Scaffolding assembly for nullable reference types
- Fix small typos in docs and resource strings
- Documentation:
- Updates to external link icons
- Update supported framework versions
- Merge relational inheritance into main inheritance page
- Merge default values and computed columns into generated properties section
- Move sequences documentation out of relational area and clean up
- Merge relational and non-relational index docs
- Merge relational and non-relational property/column docs
- Merge relational and non-relational key mapping
- Merge relational constraints into general relationships docs
- Merge primary keys and alternate keys into keys docs
- Updates to providers/extension docs for 3.1
- Cleanup of modeling docs
- Fix link to remove en-us
- Nest tab headings
- Add clarification about transitive references to the design package
Microsoft.Data.Sqlite
- Updated link to Sqlite docs
Issues remaining for 5.0
The burn-down will return for 5.0 once the plan is finalized.
Latest releases
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Current/LTS: EF Core 3.1.0
EF6:
- Daily builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Current: EF 6.4.0
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 16, 2020
Expand to see status from this week...
EF Core 3.1.1
EF Core 3.1.1 is now available on NuGet. This is a patch release of 3.1 containing critical bug fixes.
EF Core 5.0
The initial plan for EF Core 5.0 is now live on our docs site.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn. We are always grateful for your feedback so that it can influence this learning process, as well as influence future planning. Please use the Feedback links at the bottom of the document.
Themes for EF Core 5.0
The high-level themes for EF Core 5.0 are detailed in the 5.0 plan. These themes are:
- Many-to-many navigation properties (a.k.a "skip navigations")
- Table-per-type (TPT) inheritance mapping
- Filtered Include
- Rationalize ToTable, ToQuery, ToView, FromSql, etc.
- General query enhancements
- Migrations and deployment experience
- EF Core platforms experience
- Performance
- Architectural/contributor documentation
- Microsoft.Data.Sqlite documentation
- General documentation
- Fixing bugs
- Small enhancements
Builds to use
- The daily builds are the most up-to-date available.
- Using the daily builds 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.
- We work hard to keep the daily builds in good shape by running over 55,000 tests per target for each build.
- Daily builds now contain work scheduled for release in EF Core 5.0.
- There are already 120 issues closed and merged for EF Core 5.0.
- Current and LTS: EF Core 3.1.1
Pull requests from the last week
Community contributions
- @orionstudt contributed support for change tracking proxies
- @jmzagorski fixed the summary comment for WithOne
- @jviau contributed translations for Contains, StartsWith, and EndsWith on Cosmos
- @WeihanLi contributed the context.Database.IsRelational extension method
- @mhDuke removed the out-dated limitation on query filters using navigations
Many thanks to all our contributors!
EF Core
- Query
- Optimized generation of SQL CASE blocks
- Additional code cleanup for null semantics
- Updated query asserters to not use dynamic
- Tooling
- SQLite
- Documentation:
- Updates to releases and planning for EF Core 3.1 and 5.0
- Improved documentation for using backing fields
- Documented workarounds for using SpatiaLite with PROJ
- Fix for typo in link
- Clarification on nullable reference types and backing fields
- Added not about API surface being null-oblivious
- Updated docs readme with detailed instructions for fixing a typo
Issues remaining for 5.0
The burn-down will return for EF Core 5.0 next week.
Latest releases
See EF Core releases and planning in our documentation for full details.
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Current/LTS: EF Core 3.1.1
EF6:
- Daily builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Current: EF 6.4.0
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 23, 2020
Expand to see status from this week...
EF Core 3.1.1
EF Core 3.1.1 is now available on NuGet. This is a patch release of 3.1 containing critical bug fixes.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Status of themes for EF Core 5.0
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | Not started |
Filtered Include | Not started |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Not started |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | Not started |
Microsoft.Data.Sqlite documentation | Complete! |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Using the daily builds 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.
- We work hard to keep the daily builds in good shape by running over 55,000 tests per target for each build.
- Daily builds now contain work scheduled for release in EF Core 5.0.
- There are already 123 issues closed and merged for EF Core 5.0.
- Current and LTS: EF Core 3.1.1
Pull requests from the last week
Pull request numbers are low right now since most if the team is working on investigating, learning, designing, etc. for new features.
Community contributions
- @benmccallum clarified documentation for UseLoggerFactory
- @OOberoi fixed a typo
- @mariusGundersen added a link to Expressionify
- @aevitas fixed a typo
Many thanks to all our contributors!
EF Core
- Query
- Improvements to null-semantics by using function-specific metadata
- Added some inline documentation on navigation expansion
Latest releases
See EF Core releases and planning in our documentation for full details.
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Current/LTS: EF Core 3.1.1
EF6:
- Daily builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Current: EF 6.4.0
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 30, 2020
Expand to see status from this week...
Highlights
- Updated release-planning documentation. This covers
- How we prioritize issues for patching and other releases
- How to understand the states/milestones of issues on GitHub
- Updated comparison between EF Core and EF6 including guidance on which to use
- EF Core can now generate change-tracking proxies (automatically implementing IPropertyChanged, etc.) thanks to a community contribution (Thanks @orionstudt!)
- Technically this went in a couple of weeks ago. We did some additional testing this week and it's looking very solid!
- The community continues to contribute additional query translations.
- Thanks to @svengeance for this week's translation of SequenceEqual for byte arrays
EF Core 3.1.1
EF Core 3.1.1 is now available on NuGet. This is a patch release of 3.1 containing critical bug fixes.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Status of themes for EF Core 5.0
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | Not started |
Filtered Include | Not started |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Not started |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Complete! |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Using the daily builds 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.
- We work hard to keep the daily builds in good shape by running over 55,000 tests per target for each build. However, due to internal infrastructure changes there are currently some bad packages on the feed. Use package versions "5.0.0-alpha.*" to workaround this.
- Daily builds now contain work scheduled for release in EF Core 5.0.
- There are already 133 issues closed and merged for EF Core 5.0.
- Current and LTS: EF Core 3.1.1
Pull requests from the last week
Pull request numbers are low right now since most if the team is working on investigating, learning, designing, etc. for new features.
Community contributions
- @matthiaslischka contributed documentation clarification for EntityEntry.OriginalValues
- @svengeance contributed translations for SequenceEqual on byte arrays
- @VladDragnea contributed a design-time enhancement that allows a DbContext to be resolved from D.I. in more cases
- @gravbox contributed a link to nHydrate in the third-party extensions documentation
Many thanks to all our contributors!
EF Core
- Query
- Tracking/SaveChanges
- Implementation of robust ordering for key property values
- Consolidation of structural and key comparers
- Documentation
- Testing
- Functional testing for change-tracking proxies
- Improved functional testing for migrations (Also 19699 19718)
- Testing for GroupBy scenario with with HasValue
- Testing for null semantics and CASE generation scenario
- Testing for parameter-based optimization scenario
- Fixed multiple database tests to work with other providers
- Package dependency updates
- Updated to Cosmos 3.6.0
- Updated to SqlClient 2.0.0-preview1
Latest releases
See EF Core releases and planning (Roadmap) in our documentation for full details.
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Current/LTS: EF Core 3.1.1
EF6:
- Daily builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Current: EF 6.4.0
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 6, 2020
Expand to see status from this week...
Highlights
- The fundamental model building changes for many-to-many are now merged.
- Early work has started on designing the "store model" representation needed for TPT.
_etag
concurrency is now supported on Cosmos thanks to a community contribution from @jviau!- Have you considered contributing?
- We've published What's new in EF Core 5.0
- This document will track new features introduced in each preview of EF Core 5.0
EF Core 3.1.1
EF Core 3.1.1 is now available on NuGet. This is a patch release of 3.1 containing critical bug fixes.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Status of themes for EF Core 5.0
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Not started |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Complete! |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Using the daily builds 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.
- We work hard to keep the daily builds in good shape by running over 55,000 tests per target for each build. However, due to internal infrastructure changes there are currently some bad packages on the feed. Use package versions "5.0.0-alpha.*" to workaround this.
- Daily builds now contain work scheduled for release in EF Core 5.0.
- There are already 140 issues closed and merged for EF Core 5.0.
- Current and LTS: EF Core 3.1.1
Pull requests from the last week
Pull request numbers are low right now since most if the team is working on investigating, learning, designing, etc. for new features.
Community contributions
@jviau contributed support for concurrency using _etag
in the Cosmos provider
@CGijbels contributed improved organization of terms in relationship dodcumentation
Many thanks to all our contributors!
EF Core
- Model building
- Query
- Cosmos
- Test
- Documentation
- Created initial What's new in EF Core 5.0 document
Latest releases
See EF Core releases and planning (Roadmap) in our documentation for full details.
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Current/LTS: EF Core 3.1.1
EF6:
- Daily builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Current: EF 6.4.0
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 13, 2020
Expand to see status from this week...
Highlights
- The initial design has been completed for the store model abstraction used by TPT, TPC, and entity splitting
- Code to implement the API is out in a PR
- We have reassessed all issues filed since the 3.0 release as candidates to be included in a 3.1.x patch release
- Issues going through the process of approval for patching are labeled on GitHub with
servicing-consider
- Issues approved for patching are labeled on GitHub with
servicing-approved
- Issues going through the process of approval for patching are labeled on GitHub with
EF Core 3.1.1
EF Core 3.1.1 is now available on NuGet.
This is a patch release of 3.1 containing critical bug fixes.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Status of themes for EF Core 5.0
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Not started |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Complete! |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Using the daily builds 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.
- We work hard to keep the daily builds in good shape by running over 57,000 tests per target for each build.
- Daily builds now contain work scheduled for release in EF Core 5.0.
- There are already 150 issues closed and merged for EF Core 5.0.
- Current and LTS: EF Core 3.1.1
Pull requests from the last week
Pull request numbers are low right now since most if the team is working on investigating, learning, designing, etc. for new features.
Community contributions
- @mikes-gh contributed code to normalize parenthesis when scaffolding from old SQL Server databases
- @Muppets contributed better exception handling and messages for Last, etc.
- @sguitardude removed an outdated link from the docs
- @SimpleSamples clarified language in the existing database docs
- @loic-sharma removed outdated information about NuGet package install
- @amrbadawy updated docs to use example.com instead of sample.com
- @MaxG117 updated the Teradata.EntityFrameworkCore reference to indicate it is now releases
Many thanks to all our contributors!
EF Core
- Model building
- Rename IModelFinalizedConvention to IModelFinalizingConvention in preparation for store model work
- Added DbSet support for shared-type entity types
- Query
- Fix exponential query compilation in some deep query trees
- Fixes to correctly use DbContext members in compiled queries
- Use KeyValueComparer to compare query identifiers
- Add query plan back to logging
- Fix snapshot of selector shape to handle GroupBy-Aggregate
- Don't use null propagation by default for UDFs
- Make IEntityType part of EntityQueryable to handle shared-type entities
- Convert List.Count to Queryable.Count() only for queryables
- Combine queryable method processing expression visitors
- Fix parameter name generation for raw SQL queries
- Additional code cleanup and tests for checked context
- Cleanup VB/C# language processing
- Remove use of default type mapping where not needed
- Scaffolding
- Tests
- Docs
- Added an Oxford comma
Latest releases
See EF Core releases and planning (Roadmap) in our documentation for full details.
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Current/LTS: EF Core 3.1.1
EF6:
- Daily builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Current: EF 6.4.0
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 20, 2020
Expand to see status from this week...
Highlights
- Patches for 11 issues have been merged for the 3.1.3 patch release, tentatively scheduled for March.
- The window for the 3.1.3 release has now closed, but we are still investigating additional issues to fix in later patches.
- We are working on a an easier to use way to load a graph using multiple queries.
- We will make this available in some form for the 3.1 release.
EF Core 3.1.2
EF Core 3.1.2 is now available on NuGet.
This patch release contains no new EF Core code. It was released because it updates some dependencies. All the fixes in the 3.1.1 release are also included in the 3.1.2 release.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Status of themes for EF Core 5.0
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Not started |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Complete! |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Using the daily builds 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.
- We work hard to keep the daily builds in good shape by running over 57,000 tests per target for each build.
- Daily builds now contain work scheduled for release in EF Core 5.0.
- There are already 157 issues closed and merged for EF Core 5.0.
- Current and LTS: EF Core 3.1.2
Pull requests from the last week
Pull request numbers are low right now since most if the team is working on investigating, learning, designing, etc. for new features.
Community contributions
- @aleksandar-manukov implemented translations for TimeSpan members
Many thanks to all our contributors!
EF Core
- 3.1.3 patch PRs
- Fix exception when scaffolding from tables/views without keys
- Fixed failure to find SpatialLite in framework-dependent deployments
- Fixed several issues in cascade behaviors when detaching entities
- Fix for collection Includes on Cosmos
- Fixed exponential perf when translating deeply nested queries
- Fix to simplify the query for simple owned entity cases
- Fix to DateTimeOffset type mapping
- Fix to OrderBy/ThenBy translations with expanded navigations
- Model building
- Scaffolding
- Testing
- Add automatic null propagation for AssertQuery baselines
- C.I. test runs moved to use the Helix infrastructure
Latest 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 27, 2020
Expand to see status from this week...
Highlights
- We have merged a large community PR from @pmiddleton to support mapping a CLR method returning an IQueryable to a TVF in the database.
- This is a great example of the community working with the EF team to integrate a big change into the query pipeline.
- The implementation for
KeylessAttribute
is now merged.- This allows marking entity types as keyless without using the model building API.
EF Core 3.1.2
EF Core 3.1.2 is now [available on NuGet](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore/3.1.2.
This patch release contains no new EF Core code. It was released because it updates some dependencies. All the fixes in the 3.1.1 release are also included in the 3.1.2 release.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Status of themes for EF Core 5.0
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Not started |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Complete! |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @pmiddleton contributed a major update to support mapping queryable functions to TVF
- @alaatm made a change to cache the StringBuilder in SQL Server conventions
- @EricStG added additional tests for spatial queries
- @Muppets added regression tests for int/string concatenation
- @Costo fixed the QueryFilters sample
Many thanks to all our contributors!
EF Core
- 3.1.x patch PRs
- Model building
- Allow mapping an entity type to both a table and a view
- Added view support to the relational model API
- Start storing all sequences in a single annotation
- Introduce KeylessAttribute
- Log a warning when using KeylessAttribute and KeyAttribute at the same time
- Don't allow KeyAttribute to override KeylessAttribute
- Query
- SQLite
- Tools
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Using the daily builds 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.
- We work hard to keep the daily builds in good shape by running over 57,000 tests per target for each build.
- Daily builds now contain work scheduled for release in EF Core 5.0.
- There are already 171 issues closed and merged for EF Core 5.0.
- Current and LTS: EF Core 3.1.2
Latest 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 5, 2020
Expand to see status from this week...
Highlights
- Lots of work this week setting up the query pipeline to handle different types of query roots.
- This is foundational for improved support for TVFs, ToTable, ToQuery, ToView, FromSql, etc..
- Community PR from @lokalmatador to greatly improve usability of decimals with SQLite.
- Many thanks to @Muppets for paying off some of our technical debt.
EF Core 3.1.2
EF Core 3.1.2 is now [available on NuGet](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore/3.1.2.
This patch release contains no new EF Core code. It was released because it updates some dependencies. All the fixes in the 3.1.1 release are also included in the 3.1.2 release.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Status of themes for EF Core 5.0
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Not started |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Complete! |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @lokalmatador added support for decimal comparisons in SQLite
- @Muppets helped immensely with some 3.0 technical debt by creating resource strings for exception messages
- @dshuvaev added support for nested ambient transaction
- @nmichels improved the efficiency of SqliteDataRecord. See also 20088 20092
- @OOberoi fixed some typos and punctuation
- @vslee clarified the many-to-many issues in the 5.0 plan
- @sguitardude fixed spelling of set up
- @amrbadawy Changed owned type to owned entity
- @amrbadawy Removed incorrect endregion
- @lohoris-crane fixed a typo
Many thanks to all our contributors!
EF Core
- Query
- Introduction of custom query root expressions
- Introduction of custom query root for TVFs
- Introduction of QueryableFunctionExpression to represent TVFs in the SQL tree
- Convert FromSql methods to custom query roots
- Improve parameterization of Queryable functions
- Use IsNullable property to determine its nullability
- Allow parameters of the integer type underlying the enum
- Fix to apply null-semantics to subquery.Contains(null)
- Minor cleanup related to Queryable Functions
- Improved expression tree printing
- Model building
- Migrations
- Add support for more literal generation needed for NodaTime types
- Throw if migration has the same name as the context
- Transactions
- Clarification of the nested ambient transaction exception message
- Sqlite
- Docs
- Make breadcrumbs consistent with .NET and ASP.NET docs
- Update highlighting for modeling docs
- Update releases to indicate that EF Core 3.0 is now out-of-support
Microsoft.Data.Sqlite
- Align with other providers by defaulting CommandText to an empty string
- Improve SqliteConnection perf by making more things lazy
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Using the daily builds 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.
- We work hard to keep the daily builds in good shape by running over 57,000 tests per target for each build.
- Daily builds now contain work scheduled for release in EF Core 5.0.
- There are already 171 issues closed and merged for EF Core 5.0.
- Current and LTS: EF Core 3.1.2
Latest 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 12, 2020
Expand to see status from this week...
Highlights
- Please welcome @JeremyLikness as the new Senior Program Manager for .NET Data! Jeremy will be working closely with the EF team as well as more broadly across .NET.
dotnet ef database update
now accepts a connection string on the command line.- Querying for all types in a TPH hierarchy now doesn't require a Where clause.
EF Core 3.1.2
EF Core 3.1.2 is now [available on NuGet](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore/3.1.2.
This patch release contains no new EF Core code. It was released because it updates some dependencies. All the fixes in the 3.1.1 release are also included in the 3.1.2 release.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Status of themes for EF Core 5.0
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Not started |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Complete! |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @prog-rajkamal corrected the supported .NET Standard version in installation docs
- @ccjx added more examples of 'from' and 'to' usage in migration script samples
- @AnthonyMonterrosa corrected some grammar
Many thanks to all our contributors!
EF Core
- Query
- Handle more cases of casting to an interface inside query
- Updated test baseline for free-text query
- Updated test for using Cast with TVF
- Cleanup in Queryable function support
- Model building
- Migrations
- Dependencies
- Docs
- Added clarification for using the EF6 designer with .NET Core
- Simplification of docs breadcrumbs
- Tests
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Using the daily builds 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.
- We work hard to keep the daily builds in good shape by running over 57,000 tests per target for each build.
- There are already 195 issues closed and merged for EF Core 5.0.
- Current and LTS: EF Core 3.1.2
Latest 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 19, 2020
Expand to see status from this week...
EF Core 5.0 preview 1 released!
EF Core 5.0 preview 1 is on NuGet now!
New features in preview 1:
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.2
EF Core 3.1.2 is now available on NuGet.
This patch release contains no new EF Core code. It was released because it updates some dependencies. All the fixes in the 3.1.1 release are also included in the 3.1.2 release.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | In-progress |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Complete! |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @1iveowl added WithPartitionKey extension method for Cosmos
- @thomaslevesque Added NotParameterizedAttribute to FreeText's parameter
Many thanks to all our contributors!
EF Core
- Query
- Fix issue materializing entity instances for keyless types will all null values
- Added more flexibility for discriminator conditions in the entity shaper
- Make keyless entity type materialization checks part of discriminator conditions
- Make CreateReadValueExpression an extension method
- Disallow setting custom translation for DbFunction mapped to TVFs
- Remove client implementation for EF.Functions.Like
- Remove client evaluation code for EF.Functions methods
- Improve printing of switch in expression tree
- Model building
- Added Navigation API to allow configuration of navigation properties
- Added ability to configure the navigation on dependent side of owned types
- Added HasField to navigation builder to make it easy to set the backing field
- Made discriminator mapping as complete by default
- Improve and test consistency in metadata APIs
- Removed earlier design for navigation configuration
- Docs
- Updated what's new in EF Core 5.0 preview 1
- Updated releases to include 5.0 previews
- Updated security template
- Tests
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.2
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 26, 2020
Expand to see status from this week...
Highlights
- EF Core 3.1.3 is available on NuGet now!.
- This is a patch release of 3.1 containing twelve important bug fixes.
- EF Core 5.0 preview 1 is also available on NuGet now!
- Merged and in the daily builds:
- Support for filtered Include.
- The main part of the fix for owned entities producing overly complicated SQL
- Initial new documentation for:
Quick peak at filtered Include
Global query filters have been supported since EF Core 2.0.
Now EF Core 5.0 introduces ad-hoc filtering of relationships using Include.
For example, this query uses Include in its traditional form to query for Blogs and also load every associated Post.
var blogs = context.Blogs
.Include(e => e.Posts)
.ToList();
DisplayBlogs(blogs);
Typical output from this query might be:
Blog: Crisps:
Post: Cheese and Onion
Post: Prawn Cocktail
Post: Smokey Bacon
Post: Salt and Vinegar
Post: Cream Cheese and Chives
Blog: Sandwiches:
Post: BLT
Post: Ham and Cheese
Post: Cheese and Pickle
Post: Cheese and Tomato
In EF Core 5.0, Include can now be given a Where
clause to filter which associated entities are loaded.
For example, this query uses Include with a filter for only posts with titles containing "Cheese".
var blogsWithCheese = context.Blogs
.Include(e => e.Posts.Where(p => p.Title.Contains("Cheese")))
.ToList();
DisplayBlogs(blogsWithCheese);
This translates to the following SQL when using the SQL Server databse provider:
SELECT [b].[Id], [b].[Title], [t].[Id], [t].[BlogId], [t].[Title]
FROM [Blogs] AS [b]
LEFT JOIN (
SELECT [p].[Id], [p].[BlogId], [p].[Title]
FROM [Post] AS [p]
WHERE CHARINDEX(N'Cheese', [p].[Title]) > 0
) AS [t] ON [b].[Id] = [t].[BlogId]
ORDER BY [b].[Id], [t].[Id]
Using the same data as before, the output is now:
Blog: Crisps:
Post: Cheese and Onion
Post: Cream Cheese and Chives
Blog: Sandwiches:
Post: Ham and Cheese
Post: Cheese and Pickle
Post: Cheese and Tomato
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @Marusyk implemented translation for the SQL Server DATALENGTH function
- @akovac35 added clarifications for configuration of DbContext with Blazor
- @leotsarev added EF 6.4 to the EF6 releases
- @kostat added XLinq to the extensions docs
Many thanks to all our contributors!
EF Core
- Query
- Implemented support for filtered Include
- Stop generating server side joins for optional dependents
- Fix to map projection correctly when joining two tables Also 20340
- Improve detection of non-composed FromSql
- Bring back detailed error logging for queries
- Remove code duplication for materialization condition
- Docs:
- Initial guidance on testing EF Core applications
- New documentation for value comparers
- Clarify supported project types for the EF6 designer
- Added 3.1.3 to releases
- Test:
- SQLite:
- Model building:
- Global:
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.3
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 2, 2020
Expand to see status from this week...
EF Core 5.0 preview 2 released!
EF Core 5.0 preview 2 is on NuGet now!
For EF Core, preview 2 contains only a few new features over preview 1:
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
Remember that all these preview 1 features are also in preview 2:
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.3
EF Core 3.1.3 is available on NuGet now!.
This is a patch release of 3.1 containing twelve important bug fixes.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
@sungam3r Fixed typos in the XML doc comments
@ErikEJ adding testing support to detect SqlServer features automagically rather than using env vars
Many thanks to all our contributors!
EF Core
- Query
- Cover more scenarios by Rewriting entity equality during translation phase
- Fix translation issues by merging query optimizing expression visitors
- Fix translation of SQL Serer ToString
- Improve perf of finding value comparer for in-memory database
- Add ability for translation pipeline to translate property access over a subquery
- Pass QueryCompilationContext to factories used during compilation time
- Revert fix for bool column equality since it fails for some cases
- Model Building:
- Add a convention to discover the entity type returned by a queryable function
- Made AnnotationBuilder public
- Implementation of HasPrecision to specify precision/scale in a database agnostic manner
- Throw early when IsUnique invalidates relationship multiplicity
- Updated IInfrastructure on Fluent API to use public interfaces
- API review and cleanup:
- Miscellaneous API review changes: 20452 20412
- Cleanup of value generation visibility and namespaces
- Allow switching off use of EF Analyzer in EF projects
- Fixed Linux build breaks
- Migrations/Tooling:
- Test:
- Docs:
Microsoft.Data.Sqlite
- Test against e_sqlcipher and winsqlite3
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.3
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 9, 2020
Expand to see status from this week...
Highlights
- Great progress on many-to-many support in queries
- Quality: API reviews and internal code cleanup
- Continued small enhancements to the model building APIs
EF Core 5.0 preview 2
EF Core 5.0 preview 2 is available on NuGet now!
The EF Core 5.0 previews contain the following new features and enhancements:
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.3
EF Core 3.1.3 is available on NuGet now!.
This is a patch release of 3.1 containing twelve important bug fixes.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @dzmitry-lahoda clarified getting started guidance
- @ErikEJ fixed broken links to old blog posts
- @Logerfo made some small adjustments to the relationships page
Many thanks to all our contributors!
EF Core
- Internal code cleanup
- Make IDbSetFinder public
- Cleanup and add documentation for IndentedStringBuilder
- Cleanup EF-internal usage for building/using internal service provider
- Make key value factories public
- Move MetadataDebugStringOptions to Infrastructure and make DebugView public
- Make Graph and Multigraph fully internal
- Make a selection of comparers public
- Make miscellaneous EF-internal code public or real internal
- De-nest ServiceCharacteristics
- Query
- Fix to parameterize components of NewExpression when possible
- Fix incorrect JOIN rather than APPLY for subqueries with outside references to a joined table
- Flatten case expressions
- Fix for queries with enum parameters whose value is of underlying type but the value expected by type mapping is the actual enum type
- Fix assumption that Parameter.Name is not null
- Assign types for SqlExpression correctly
- Fix composite null checking in navigation expansion
- Avoid potential null to bool cast
- Model building
- Test
- Tweak many-to-many testing model
- Tweak slow-running test
- Docs
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.3
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 16, 2020
Expand to see status from this week...
Highlights
We now have a new Entity Framework hub page at docs.microsoft.com/ef!
This is part of an ongoing docs push--feedback always appreciated. Does it help you find what you need?
Also:
- Support for different database collations in migrations and queries
- Two more issues patched for the upcoming 3.1.4 patch release--see below
- Docs for new features, including filtered Include, KeylessAttribute, and BackingFieldAttribute
EF Core 5.0 preview 2
EF Core 5.0 preview 2 is available on NuGet now!
The EF Core 5.0 previews contain the following new features and enhancements:
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.3
EF Core 3.1.3 is available on NuGet now!.
This is a patch release of 3.1 containing twelve important bug fixes.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @ralmsdeveloper ran a routine code cleanup mainly to cleanup unneeded usings
- @ErikEJ added Ramses, EFCore.NamingConventions, SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime, and Dabble.EntityFrameworkCore.Temporal.Query to the list of EF Core extensions
- @ErikEJ fixed some URL build warnings
Many thanks to all our contributors!
EF Core
- Query
- Fix to be resilient to parameter expression with no name set, as generated by OData Will be in the 3.1.4 patch
- Fix to use the value from DefaultIfEmpty in Min/Max instead of throwing
- Fix for filtered include when last operation is OrderBy
- Support for Contains on
List<Object>
- Support for up-to 15 parameters in CompiledQuery
- Improve consistency of expression visitor
Visit
methods
- Model building
- Support specifying collations on columns and databases
- Add column types to migrations data operations
- Throw when Many-to-many configured with only one navigation
- Fix to ensure the migrations snapshot has type mappings applied
- Improved error message when FK properties are mismatch
- Revert HasKey binary breaking change and add a test for IdentityServer4
- Documentation
- New top-level "hub page" for Entity Framework docs Also #2292
- Docs for filtered Include
- Docs for BackingFieldAttribute
- Docs for KeylessAttribute
- Cosmos
- Avoid using "value" as an alias since it is a reserved word Will be in the 3.1.4 patch
- Testing
- Improve robustness of ToString translation tests
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.3
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 23, 2020
Expand to see status from this week...
EF Core 5.0 preview 3 released!
EF Core 5.0 preview 3 is on NuGet now!
New features in preview 3 include:
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
Remember that all these preview 1 and 2 features are also included in preview 3:
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.3
EF Core 3.1.3 is available on NuGet now!.
This is a patch release of 3.1 containing twelve important bug fixes.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @ErikEJ fixed a bug scaffolding a DbContext from a database with hypothetical indexes
- @ralmsdeveloper introduced CommentAttribute to specify comments for tables and columns when creating migrations
- @paulomorgado updated the link to release planning process
- @ralmsdeveloper added support for fill factors in SQL Server indexes
- @1iveowl added improvements in the Cosmos provider for Find/FindAsync with Partition Key Also see 20698.
- @IGx89 added Cosmos provider support for populating
__jObject
on SaveChanges - @FransBouma updated the Extensions page so it reflects the support for EF Core 3 by LLBLGen Pro
- @witheej fixed the interception of database operations sample
- @oskarj added missing Update-Database step to migrations doc
Many thanks to all our contributors!
EF Core
- Model building
- Support for persisted/stored and virtual computed columns
- Support check constraints on when configuring opened entities
- Allow disabling of error for un-matched navigation properties when using Include
- Fix for null reference exception when calling calling Owned
- Fix for adding identifier appropriately when generating joins
- Obsolete key comparers on properties
- Docs
- Query
- Updated InheritanceRelationshipsQueryTest to include owned types
- Fix to resource strings. Also see 20725
- Remove AnonymousObject
- SaveChanges
- Tests
- Improve test reliability by starting LocalDB early
- Run dependency object tests automatically for all dependency objects
- Migrations
- Miscellaneous
Microsoft.Data.Sqlite
- API standardization for empty string init and coalescing for various properties
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.3
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 30, 2020
Expand to see status from this week...
Highlights
- Major updates to guidance for testing EF Core apps, including samples, and using SQLite in-memory databases.
- Use EF.Functions.Collate for explicit collations in queries
- Support for savepoints
- Support for mapping IPAddress properties
EF Core 5.0 preview 3
EF Core 5.0 preview 3 is available on NuGet now!
The EF Core 5.0 previews contain the following new features and enhancements:
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.3
EF Core 3.1.3 is available on NuGet now!.
This is a patch release of 3.1 containing twelve important bug fixes.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @1iveowl implemented detection of partition key filters in Cosmos queries
- @ralmsdeveloper implemented built-in converters for IPAddress
- @bdebaere made migrations IDs more flexible
- @bhargaviannadevara-msft updated EF6/EF Core comparison docs Also #2324
Many thanks to all our contributors!
EF Core
- Query
- Add EF.Functions.Collate
- Fix for using Equals on enums converted to strings
- Test for Contains with a
List<object>
- Cleanup for query APIs
- Updates from API review
- Support for identity resolution in no-tracking queries
- Cleanup of query filter to partition key detection
- De-duplication of query enumerators
- Add XML docs for query APIs Also #20745
- Docs
- New guidance for testing EF Core applications
- Updates to What's New for new documentation
- Document passing arguments to IDesignTimeDbContextFactory
- Document passing a connection string to Update-Database
- Document how to use Namespace and ContextNamespace for migrations and scaffolding
- Improve ordering of cards and add platform card
- Add C.I. to ensure samples build
- Add EntityFrameworkCore.SqlServer.HierarchyId to the EF extensions list
- Model building
- Add missing concurrency token properties for table splitting
- Support for public fields in the model building API
- Updates from API review
- Miscellaneous
- Simplify execution strategy logic
- Cleanup of internal code
- SaveChanges
- Support for savepoints
- Tooling/Migrations
- Tests
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.3
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 7, 2020
Expand to see status from this week...
Highlights
The first Entity Framework Community Standup was streamed live on Wednesday!
If you missed it, then catch up now on YouTube.
In the first episode:
- Meet the EF team
- See how EF Core was used to rapidly create app for connecting PPE donors with hospitals
- A demo of testing applications with EF Core, including shared test databases
EF Core 5.0 preview 3
EF Core 5.0 preview 3 is available on NuGet now!
The EF Core 5.0 previews contain the following new features and enhancements:
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.3
EF Core 3.1.3 is available on NuGet now!.
This is a patch release of 3.1 containing twelve important bug fixes.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @LaurenceJKing documented async LINQ operator exceptions
- @cincuranet updated the supported version for FirebirdSql.EntityFrameworkCore.Firebird to 3.1
- @mderriey fixed some typos and grammar errors in the testing docs
Many thanks to all our contributors!
EF Core
- Query
- Improve extensibility of null semantics processor
- Fix consistency issues in query code
- Translate NegateChecked to SQL
- Fix to ensure MakeUnary/Binary returns null for invalid operator types
- Add API docs for relational types. See also #20783 and #20801
- Documentation
- Guide people towards the Name= syntax for connection strings
- Documentation for Navigation model building API
- Document that Namespace and ContextNamespace options are only available in 5.0
- Fixed links to be relative where appropriate
- Migrations
- Model building
- SaveChanges
- Scaffolding
- Miscellaneous
- Benchmarks
- Remove cold start benchmarking
- Cosmos
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.3
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 14, 2020
Expand to see status from this week...
Highlights
- EF Core 3.1.4 is available on NuGet now!.
- This is a patch release of 3.1 containing eight important bug fixes.
- Check out this blog post from @JeremyLikness on using CosmosDB via EF Core running in the browser using Blazor WebAssembly!
- Better exception messages when queries cannot be translated.
For example, for this query whereIsLondon
is an unmapped property:
context.Customers.OrderBy(c => c.IsLondon).ToList()
EF Core now throws a message indicating that IsLondon
is the problem:
The LINQ expression 'DbSet()
.OrderBy(c => c.IsLondon)' could not be translated. Additional information: Translation of member 'IsLondon' on entity type 'Customer' failed. Possibly the specified member is not mapped. Either rewrite the query in a form that can be translated, or switch to client evaluation explicitly by inserting a call to either AsEnumerable(), AsAsyncEnumerable(), ToList(), or ToListAsync(). See https://go.microsoft.com/fwlink/?linkid=2101038 for more information.
EF Core 5.0 preview 3
EF Core 5.0 preview 3 is available on NuGet now!
The EF Core 5.0 previews contain the following new features and enhancements:
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
The .NET Blog announcement has installation instructions and full details.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @AlexanderTaeschner added support for EXPLAIN on parameterized queries in SQLite
- @Jesse-Hufstetler corrected the name of SQL Server Management Studio
Many thanks to all our contributors!
EF Core
- Query
- Docs
- Migrations
- Support for generated (computed) columns in SQLite
- Test coverage for alterating check constraints
- Cosmos
- Model building
- Benchmarks
- Miscellaneous
- Dependency updates to Castle Core 4.1.1, Cosmos Client 3.9.0-preview2, and SqlClient 2.0.0-preview3
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.4
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 21, 2020
Expand to see status from this week...
Highlights
- EF Core connecting to Cosmos DB was shown in @scottgu's keynote at Build!
- And in case you missed it with all the Build excitement:
- EF Core 5.0 preview 4 is out now!
- EF Core 3.1.4 is out now!
EF Core 5.0 preview 4
EF Core 5.0 preview 4 is available on NuGet now!
New features in preview 4 include:
Remember that all these preview 1, 2, and 3 features are also included in preview 4:
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.4
EF Core 3.1.4 is available on NuGet now.
This is a patch release of 3.1 containing eight important bug fixes.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | Not started |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @Marusyk added an overload to UseTransaction for specifying the transaction ID
- @ivarlovlie added instructions for updating a dotnet-ef installation. See also #2391.
- @cucoreanu fixed typos and grammar
Many thanks to all our contributors!
EF Core
- Query
- Fix to simplify case blocks in the SQL tree
- Support for switch expression in SqlNullabilityProcessor
- Fix to translate stringColumn.FirstOrDefault() using SUBSTRING on SQL Server
- Test for correct literal generation in non-Unicode CompareTo
- Test infrastructure for asserting includes in the query
- Test cleanup
- Documentation
- Reference 5.0.0-preview4 in samples
- Fix top-level heading in WPF docs
- Model building
- Changes based on API review feedback
- Connection resiliency
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.4
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 28, 2020
Expand to see status from this week...
Highlights
- TPT support to model building, migrations and update pipeline is now merged!
- Full support for queries is still pending
- Lots of work on query testing in preparation for split Includes, many-to-many, and TPT
- The next EF Community Standup is scheduled for Wednesday, June 3rd at 10am PT / 1pm ET. Join us at https://live.dot.net.
EF Core 5.0 preview 4
EF Core 5.0 preview 4 is available on NuGet now!
New features in preview 4 include:
Remember that all these preview 1, 2, and 3 features are also included in preview 4:
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.4
EF Core 3.1.4 is available on NuGet now.
This is a patch release of 3.1 containing eight important bug fixes.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | In-progress |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
EF Core
- Query
- Fix memory leak by using scoped query logger from QueryContext
- Make IPrintableExpression.Print explicit interface implementation
- Fix non-deterministic ordering in query test
- Add validation to warn about required navigations pointing to entity with query filter
- Use AssertQuery in NorthwindIncludeQueryTestBase
- Test for Select with coalesce operator on field with non-Unicode string
- Model building
- Scaffolding
- Migrations
- In-memory database
- Documentation
- Miscellaneous
- Small docs and cleanup fixes
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.4
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.
June 4, 2020
Expand to see status from this week...
Highlights
- Indexes can now be configured using a .NET attribute--see examples below
- Oracle have released a beta of their EF Core database provider that supports EF Core 3.1
- EF Core now supports transaction savepoints
IndexAttribute
The new IndexAttribute can be placed on an entity type to specify an index for a single column.
For example:
[Index(nameof(FullName), IsUnique = true)]
public class User
{
public int Id { get; set; }
[MaxLength(128)]
public string FullName { get; set; }
}
For SQL Server, Migrations will then generate the following SQL:
CREATE UNIQUE INDEX [IX_Users_FullName]
ON [Users] ([FullName])
WHERE [FullName] IS NOT NULL;
IndexAttribute can also be used to specify an index spanning multiple columns.
For example:
[Index(nameof(FirstName), nameof(LastName), IsUnique = true)]
public class User
{
public int Id { get; set; }
[MaxLength(64)]
public string FirstName { get; set; }
[MaxLength(64)]
public string LastName { get; set; }
}
For SQL Server, this results in:
CREATE UNIQUE INDEX [IX_Users_FirstName_LastName]
ON [Users] ([FirstName], [LastName])
WHERE [FirstName] IS NOT NULL AND [LastName] IS NOT NULL;
EF Core 5.0 preview 4
EF Core 5.0 preview 4 is available on NuGet now!
New features in preview 4 include:
Remember that all these preview 1, 2, and 3 features are also included in preview 4:
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.4
EF Core 3.1.4 is available on NuGet now.
This is a patch release of 3.1 containing eight important bug fixes.
EF Core 5.0
Most of the team is now heads-down investigating, learning about, designing, and implementing new features for EF Core 5.0.
Any feedback you have for the EF Core 5.0 plan would be greatly appreciated.
This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | In-progress |
Performance | In-progress |
Architectural/contributor documentation | In-progress |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
Many thanks to all our contributors!
EF Core
- Model building
- Introduced IndexAttribute
- Add support for seed data for entity types using table sharing where the principal is using TPT
- Fix to store-generated value indexes for concurrency properties
- Tests for array literals in migrations data
- Fix to mark owned collections composite key properties to use generated values even after the first two usages
- Rename GetName, etc. to GetDatabaseName, etc.
- Add IPrimaryKeyConstraint and remove UniqueConstraint.IsPrimaryKey
- Add named and unnamed strings for index errors
- Query
- Introduce provider hook for SQL composability checks
- Regression test for materializing a keyless entity on the right side of a left join
- Add tests for string-based Include
- Add Include tests with no-tracking configuration
- Rename ISqlExpressionFactory.Function to NiladicFunction
- Make QueryAsserter a combined form of TestBase & Fixture configuration
- Documentation
- Updates to database providers and versions list
- Start using DocumentationAnalyzers. Many thanks to @sharwell!
- Miscellaneous
- Start using ConfigureAwait(false)
- Test JSON serialization of EF object graphs
- Change tracking
- SaveChanges
- Support for transaction savepoints
- Tools
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.4
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.
June 11, 2020
Expand to see status from this week...
Highlights
- We have completed a re-balancing of the work for EF Core 5.0, including pulling in full many-to-many support. Details below.
- EF Core 5.0 preview 5 is available now! Details below.
- New
ChangeTracker.Clear()
method to further reduce the need for mass detach of tracked entities.
EF Core 5.0 preview 5
EF Core 5.0 preview 5 is available on NuGet now!
New features in preview 5 include:
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
Remember that all these preview 1, 2, 3, and 4 features are also included in preview 5:
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.5
EF Core 3.1.5 is available on NuGet now.
This is a patch release of 3.1 containing dependency updates, but no new bug fixes over those already shipped in 3.1.4.
EF Core 5.0
We have completed a re-balancing of the work for EF Core 5.0. The major changes are:
- The full implementation of many-to-many has been pulled into EF Core 5.0. (Previously we were only planning for many-to-many navigations.)
- Reintroduction of split Includes has become a major feature for 5.0.
- Some of the smaller, lower priority enhancements and bug fixes have been punted to allow for these changes.
- The plan for architectural/provider documentation was too ambitious. We still believe this is important, but unfortunately it won't land with EF Core 5.0.
We will update the documented EF Core 5.0 plan soon. Feedback is still 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 theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Full many-to-many support | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Done |
Split Includes | In-progress |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | In-progress |
Performance | In-progress |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @serpent5 fixed issues in the model caching sample and relationship docs
- @sdanyliv added linq2db.EntityFrameworkCore to EF Core extensions
Many thanks to all our contributors!
EF Core
- Query
- Fix memory leak by using scoped query logger from QueryContext. Approved for 3.1.6 patch.
- Refactor shaper processing for relational queries
- Introduce FromSqlQueryingEnumerable for non composed FromSql
- Ignore comments in SQL composability check
- Better exception message when failing to translate a function
- Move fake ORDER BY clause to SQL Server provider
- Fix translation of Contains expression when setting UseRelationalNulls(true)
- Reduce allocations in ExpressionEqualityComparer
- Add support for convert to/from bool value using Convert.To* methods
- Rewrite cache synchronization to lock instead of spin
- Throw when a query filter is configured on an owned type
- Documentation
- Document collations and case-sensitivity. Also #2446.
- Document using navigations in query filters
- Start of documentation for EF Core 5.0 breaking changes
- Tweaks to inheritance docs
- Model building
- Miscellaneous
- Spatial
- Add support for Z and M when using spatial types with SQLite
- Change tracking
- Cosmos
- Testing
- Improvement to start LocalDB early to make tests more reliable
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.0 preview 5
- 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 and LTS: EF Core 3.1.5
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.
June 18, 2020
Expand to see status from this week...
Highlights
- More than 50 PRs in the last seven days!
- Option to run multiple queries for collection Includes is in the daily builds and will be in 5.0.0 preview 6.
- New
AddDbContextFactory
to easily register a DbContext factory in the application's dependency-injection container. - Humanizer.Core is now used to pluralize when scaffolding a DbContext from an existing database.
EF Core 5.0 preview 5
EF Core 5.0 preview 5 is available on NuGet now!
New features in preview 5 include:
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
Remember that all these preview 1, 2, 3, and 4 features are also included in preview 5:
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.5
EF Core 3.1.5 is available on NuGet now.
This is a patch release of 3.1 containing dependency updates, but no new bug fixes over those already shipped in 3.1.4.
EF Core 5.0
We have completed a re-balancing of the work for EF Core 5.0. The major changes are:
- The full implementation of many-to-many has been pulled into EF Core 5.0. (Previously we were only planning for many-to-many navigations.)
- Reintroduction of split Includes has become a major feature for 5.0.
- Some of the smaller, lower priority enhancements and bug fixes have been punted to allow for these changes.
- The plan for architectural/provider documentation was too ambitious. We still believe this is important, but unfortunately it won't land with EF Core 5.0.
The plan at EF Core 5.0 plan as been updated to reflect this. Feedback is still 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 theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Full many-to-many support | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Done |
Split Includes | In-progress |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | In-progress |
Performance | In-progress |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @ErikEJ wired up Humanizer.Core as a default pluralizer for scaffolding a DbContext
- @Marusyk added an overload to UseCosmos that takes a connection string
- @twenzel fixed a parameter name in a null check
- @manvydasu updated documentation to clearly indicate that userSuppliedSearchTerm variable represents parameter for the query
- @brandongregoryscott fixed a minor typo in Query Filters doc
- @uncheckederror fixed the CreatePoint() example
- @serpent5 fixed wording when discussing MigrationBuilder.ActiveProvide
- @serpent5 updated text in links to match topic title
- @rocke97 fixed typo when describing in-memory testing
Many thanks to all our contributors!
EF Core
- Query
- Implement option to do split query for collection Include
- Implement filtered Include for AsSplitQuery operator
- Fix for bool column equality when value converter is applied
- Fix for race condition in split query
- Fix for bool with value converter query processing on Cosmos
- Rename PerformIdentityResolution to AsNoTrackingWithIdentityResolution
- Convert "APPLY" to "JOIN" with skip via RowNumber
- Fix for logic protecting SUM from returning null in complex scenarios
- Improvement to DRY SelectExpression.AddJoin
- Fix inference issues around convert to object
- Improvement to eliminate boxing when entering critical sections
- Fix to process client eval in join when in the collection shaper
- Documentation
- Updates to EF Core 5.0 plan
- Update docs for IndentedStringBuilder
- Update reference to .NET CLI
- Add definition of PMC before first use
- Document new options are only available starting in EF Core 5.0
- Update filtered Include docs to notify users about how it interact with tracked entities
- Document precision and scale
- Miscellaneous
- Enable GitHub Dependabot
- Update dependency to Cosmos SDK V4
- Update dependency to Microsoft.Data.SqlClient 2.0.0
- Update dependency to Humanizer.Core 2.8.26
- Update dependency to IdentityServer4.EntityFramework to 3.1.3
- Update dependency to Microsoft.DotNet.PlatformAbstractions to 3.1.5
- Add a link to discussions for questions in issue template
- Cosmos
- Make the Cosmos 'id' property more flexible
- Improvement to add partition key to the key
- Expose more CosmosClient options
- Test improvement to unify connection strings
- Change tracking
- Tooling
- Discover IDbContextFactory at design-time
- Disable nullable reference types in scaffolding
- Improvement to experience passing arguments to the design-time context factory
- Context creation
- Model building
- Lazy-loading
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.0 preview 5
- 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 and LTS: EF Core 3.1.5
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.
June 25, 2020
Expand to see status from this week...
EF Core 5.0 preview 6
EF Core 5.0 preview 6 is available on NuGet now!
New features in preview 6 include:
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
Remember that all these features from previous previews are also included in preview 6:
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.5
EF Core 3.1.5 is available on NuGet now.
This is a patch release of 3.1 containing dependency updates, but no new bug fixes over those already shipped in 3.1.4.
EF Core 5.0
We have completed a re-balancing of the work for EF Core 5.0. The major changes are:
- The full implementation of many-to-many has been pulled into EF Core 5.0. (Previously we were only planning for many-to-many navigations.)
- Reintroduction of split Includes has become a major feature for 5.0.
- Some of the smaller, lower priority enhancements and bug fixes have been punted to allow for these changes.
- The plan for architectural/provider documentation was too ambitious. We still believe this is important, but unfortunately it won't land with EF Core 5.0.
The plan at EF Core 5.0 plan as been updated to reflect this. Feedback is still 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 theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Full many-to-many support | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Done |
Split Includes | In-progress |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | In-progress |
Performance | In-progress |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
EF Core
- Query
- Implement query support for many-to-many
- Fix ordering for filtered Include in single query scenario
- Make it easy to map built-in functions
- Fix for adding dependent conditions
- Tests for TPT in InheritanceQueryTestBase
- Regression tests for GroupBy queries
- Throw better exception on blocked translation of aggregate
- Tests for owned collections and AsSplitQuery
- Update SQL assertions
- Fix to correctly remove locks in query caches
- Document some internal constructors
- Updates from API reviews
- Clean up query validation for various negative cases
- Fix test ordering issue
- Add capability to verify order in ordered filtered Include queries
- Regression tests for incorrect syntax near the keyword 'AS` for group by aggregate
- Migrations
- Ability to exclude parts of the model from migrations
- Refactor annotation code generation
- Updates from API reviews
- Fix to avoid 10 second timeout when doing existence checks with SqlClient
- Cosmos
- Model building
- Change tracking
- Allow use of nullable backing field to check for default value
- Dependencies
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.5
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 2, 2020
Expand to see status from this week...
Highlights
- DbContextFactory now supports context pooling
- Major improvements to the Migrations documentation
- Split-queries can now be configured as the default for collection Includes
EF Core 5.0 preview 6
EF Core 5.0 preview 6 is available on NuGet now!
New features in preview 6 include:
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
Remember that all these features from previous previews are also included in preview 6:
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.5
EF Core 3.1.5 is available on NuGet now.
This is a patch release of 3.1 containing dependency updates, but no new bug fixes over those already shipped in 3.1.4.
EF Core 5.0
We have completed a re-balancing of the work for EF Core 5.0. The major changes are:
- The full implementation of many-to-many has been pulled into EF Core 5.0. (Previously we were only planning for many-to-many navigations.)
- Reintroduction of split Includes has become a major feature for 5.0.
- Some of the smaller, lower priority enhancements and bug fixes have been punted to allow for these changes.
- The plan for architectural/provider documentation was too ambitious. We still believe this is important, but unfortunately it won't land with EF Core 5.0.
The plan at EF Core 5.0 plan as been updated to reflect this. Feedback is still 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 theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Full many-to-many support | In-progress |
Table-per-type (TPT) inheritance mapping | In-progress |
Filtered Include | Done |
Split Includes | In-progress |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | In-progress |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | In-progress |
Performance | In-progress |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Community contributions
- @jonlouie fixed a translation error when using unary negations
- @mohsinnasir added NCache Entity Framework Core Provider to the extensions page
- @seekingtheoptimal updated scaffolding named connection string syntax
- @OOberoi fixed a typo in the new features documentation
Many thanks to all our contributors!
Pull requests from the last week
EF Core
- Query
- Support for self-bootstrapping functions returning IQueryable
- Fix to auto-buffer data readers in SqlServer when using split query with no MARS
- Update documentation for different constructors of SqlExpression
- Fix to bind projection member in client eval
- Fix to dispose inner data readers for split query
- Test updates to remove MARS fixtures
- Generate a warning for multiple collection Includes
- Introduce context-level configuration for split query
- Documentation
- Major improvements to the migrations docs
- Add .NET 5 TFMs to the version matrix
- DbContext
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.5
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 9, 2020
Expand to see status from this week...
Highlights
- All the major parts of table-per-type (TPT) mapping are done!
- Support for table-valued-functions (TVFs) is now complete thanks to a great collaboration with community contributor @pmiddleton.
- Great progress on many-to-many, including creation of the association mapping convention.
EF Core 5.0 preview 6
EF Core 5.0 preview 6 is available on NuGet now!
New features in preview 6 include:
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
Remember that all these features from previous previews are also included in preview 6:
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.5
EF Core 3.1.5 is available on NuGet now.
This is a patch release of 3.1 containing dependency updates, but no new bug fixes over those already shipped in 3.1.4.
EF Core 5.0
We have completed a re-balancing of the work for EF Core 5.0. The major changes are:
- The full implementation of many-to-many has been pulled into EF Core 5.0. (Previously we were only planning for many-to-many navigations.)
- Reintroduction of split Includes has become a major feature for 5.0.
- Some of the smaller, lower priority enhancements and bug fixes have been punted to allow for these changes.
- The plan for architectural/provider documentation was too ambitious. We still believe this is important, but unfortunately it won't land with EF Core 5.0.
The plan at EF Core 5.0 plan as been updated to reflect this. Feedback is still 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 theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Full many-to-many support | In-progress |
Table-per-type (TPT) inheritance mapping | Done |
Filtered Include | Done |
Split Includes | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Done |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | In-progress |
Performance | In-progress |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Community contributions
- @MartinBP fixed a build issue on case-sensitive Windows filesystems
- @Ropouser fixed a typo in the owned entities documentation
Many thanks to all our contributors!
Pull requests from the last week
EF Core
- Query
- Implement TPT for relational layer
- Support use of function mapping when querying for DbSet
- Fix to bring back join entity when including Skip collection navigations in a tracking query
- Convert inheritance query tests to AssertQuery infrastructure
- Convert inheritance relationship tests to AssertQuery infrastructure
- Fix to convert multiple equality/in-equality on same column joined by Or/Else into SQL IN expression. Also [#21566]#21566).
- Fix to put client method to fetch join entity after filtered include
- Add TPT variation for ManyToMany test. Also #21553.
- Add TPT variant for FilterInheritanceQueryTests
- Add TPT variant for GearsOfWarQueryTests
- Add split query tests in TPT relationship tests
- Use split queries for graph update tests
- Fix to Allow ToList on non-Queryables
- Documentation for query splitting
- Migrations
- Clean up Migrations code
- Model building
- SaveChanges
- Dependencies
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.5
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 16, 2020
Expand to see status from this week...
Highlights
- Major new Xamarin getting started article and code sample! (Many thanks to @codemillmatt!)
- Community contribution from @lokalmatador to greatly improve decimal translation on SQLite
- Initial many-to-many change tracking merged
EF Core 5.0 preview 6
EF Core 5.0 preview 6 is available on NuGet now!
New features in preview 6 include:
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
Remember that all these features from previous previews are also included in preview 6:
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.6
EF Core 3.1.6 is available on NuGet now.
This is a patch release of 3.1 containing important bug fixes.
EF Core 5.0
We have completed a re-balancing of the work for EF Core 5.0. The major changes are:
- The full implementation of many-to-many has been pulled into EF Core 5.0. (Previously we were only planning for many-to-many navigations.)
- Reintroduction of split Includes has become a major feature for 5.0.
- Some of the smaller, lower priority enhancements and bug fixes have been punted to allow for these changes.
- The plan for architectural/provider documentation was too ambitious. We still believe this is important, but unfortunately it won't land with EF Core 5.0.
The plan at EF Core 5.0 plan as been updated to reflect this. Feedback is still 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 theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Full many-to-many support | In-progress |
Table-per-type (TPT) inheritance mapping | Done |
Filtered Include | Done |
Split Includes | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Done |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | In-progress |
Performance | In-progress |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @lokalmatador implemented arithemtic functions to support better decimal translations on SQLite
- @shahabganji added clarification on a limitation of shadow properties
- @AshkanAbd added a soft-delete package to the extensions list
- @Ropouser fixed a typo in the owned entities docs
Many thanks to all our contributors!
EF Core
- For 3.1.6 patch
- Query
- Made QueryableMethods public again
- Fix non-deterministic test issue in ManyToManyQueryTestBase
- Allow terminating operator on GroupBy without aggregate when not returning group
- Apply null semantics processing to QueryableFunctionExpression
- Fix invalid SQL with CROSS APPLY generated on SQLite
- Add regression tests for more GroupByAggregate cases
- Fix to support indirect joins which are using non-equal conditions
- Query regression tests
- Updates to query assertions
- Model building
- Use FindEntityType(Type) as appropriate to support shared-type entity types
- Deprecate defining query at Core level
- Fix to make UsingEntity return the correct side of the association
- Remove hacky mappings for SQL types that only work on .NET Framework
- Updates from API review
- Update default join entity name
- Documentation
- New Xamarin getting started article and code sample
- Update SQLite Limitations for 5.0
- Indicate that --connection for database update is EFCore 5 onwards
- Docs cleanup
- Change tracking
- SaveChanges
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.6
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 23, 2020
Expand to see status from this week...
Highlights
Many-to-many is working now in the daily builds!
We're still finishing off support, but common cases are working now. Let's walk through a simple end-to-end example.
Here are our entity types:
public class Post
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Tag> Tags { get; set; }
}
public class Tag
{
public int Id { get; set; }
public string Text { get; set; }
public ICollection<Post> Posts { get; set; }
}
Notice that Post contains a collection of Tags, and Tag contains a collection of Posts. EF Core 5.0 recognizes this as a many-to-many relationship by convention. This means no code is requied in OnModelCreating
. For example, here's our DbContext:
public class BlogContext : DbContext
{
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder
.LogTo(Console.WriteLine, LogLevel.Information)
.EnableSensitiveDataLogging()
.UseSqlite("Data Source = test.db");
}
The DbSet for Posts is all EF Core needs to discover Post and Tag and their many-to-many relationship.
When Migrations (or EnsureCreated
) are used to create the database, EF Core will automatically create the join table. For example, on SQLite for this model, EF Core generates:
CREATE TABLE "Posts" (
"Id" INTEGER NOT NULL CONSTRAINT "PK_Posts" PRIMARY KEY AUTOINCREMENT,
"Name" TEXT NULL
);
CREATE TABLE "Tag" (
"Id" INTEGER NOT NULL CONSTRAINT "PK_Tag" PRIMARY KEY AUTOINCREMENT,
"Text" TEXT NULL
);
CREATE TABLE "PostTag" (
"Post_Id" INTEGER NOT NULL,
"Tag_Id" INTEGER NOT NULL,
CONSTRAINT "PK_PostTag" PRIMARY KEY ("Post_Id", "Tag_Id"),
CONSTRAINT "FK_PostTag_Posts_Post_Id" FOREIGN KEY ("Post_Id") REFERENCES "Posts" ("Id") ON DELETE CASCADE,
CONSTRAINT "FK_PostTag_Tag_Tag_Id" FOREIGN KEY ("Tag_Id") REFERENCES "Tag" ("Id") ON DELETE CASCADE
);
(We plan to remove the underscores from the key names here.)
Let's write a small console app to save and query some entities:
public static class Program
{
public static void Main()
{
using (var context = new BlogContext())
{
context.Database.EnsureDeleted();
context.Database.EnsureCreated();
var beginnerTag = new Tag {Text = "Beginner"};
var advancedTag = new Tag {Text = "Advanced"};
var efCoreTag = new Tag {Text = "EF Core"};
context.AddRange(
new Post {Name = "EF Core 101", Tags = new List<Tag> {beginnerTag, efCoreTag}},
new Post {Name = "Writing an EF database provider", Tags = new List<Tag> {advancedTag, efCoreTag}},
new Post {Name = "Savepoints in EF Core", Tags = new List<Tag> {beginnerTag, efCoreTag}});
context.SaveChanges();
}
using (var context = new BlogContext())
{
foreach (var post in context.Posts.Include(e => e.Tags))
{
Console.Write($"Post \"{post.Name}\" has tags");
foreach (var tag in post.Tags)
{
Console.Write($" '{tag.Text}'");
}
Console.WriteLine();
}
}
}
}
In this example, first three Tags are created and these are added to the Post.Tags
collection. Notice that the same Tag can be related to many different Posts, and vice-versa. EF Core generates the following SQL when SaveChanges is called:
INSERT INTO "Posts" ("Name")
VALUES (@p0);
SELECT "Id"
FROM "Posts"
WHERE changes() = 1 AND "rowid" = last_insert_rowid();
INSERT INTO "Posts" ("Name")
VALUES (@p0);
SELECT "Id"
FROM "Posts"
WHERE changes() = 1 AND "rowid" = last_insert_rowid();
INSERT INTO "Posts" ("Name")
VALUES (@p0);
SELECT "Id"
FROM "Posts"
WHERE changes() = 1 AND "rowid" = last_insert_rowid();
INSERT INTO "Tag" ("Text")
VALUES (@p0);
SELECT "Id"
FROM "Tag"
WHERE changes() = 1 AND "rowid" = last_insert_rowid();
INSERT INTO "Tag" ("Text")
VALUES (@p0);
SELECT "Id"
FROM "Tag"
WHERE changes() = 1 AND "rowid" = last_insert_rowid();
INSERT INTO "Tag" ("Text")
VALUES (@p0);
SELECT "Id"
FROM "Tag"
WHERE changes() = 1 AND "rowid" = last_insert_rowid();
INSERT INTO "PostTag" ("Post_Id", "Tag_Id")
VALUES (@p1, @p2);
INSERT INTO "PostTag" ("Post_Id", "Tag_Id")
VALUES (@p0, @p1);
INSERT INTO "PostTag" ("Post_Id", "Tag_Id")
VALUES (@p0, @p1);
INSERT INTO "PostTag" ("Post_Id", "Tag_Id")
VALUES (@p0, @p1);
INSERT INTO "PostTag" ("Post_Id", "Tag_Id")
VALUES (@p0, @p1);
INSERT INTO "PostTag" ("Post_Id", "Tag_Id")
VALUES (@p0, @p1);
Notice that EF Core first inserts the Posts and Tags, then creates and inserts rows into the join table for the relationships.
Finally, the application creates a new DbContext and queries back the Posts and their related Tags. The SQL generated is:
Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT "p"."Id", "p"."Name", "t0"."Post_Id", "t0"."Tag_Id", "t0"."Id", "t0"."Text"
FROM "Posts" AS "p"
LEFT JOIN (
SELECT "p0"."Post_Id", "p0"."Tag_Id", "t"."Id", "t"."Text"
FROM "PostTag" AS "p0"
INNER JOIN "Tag" AS "t" ON "p0"."Tag_Id" = "t"."Id"
) AS "t0" ON "p"."Id" = "t0"."Post_Id"
ORDER BY "p"."Id", "t0"."Post_Id", "t0"."Tag_Id", "t0"."Id"
Notice that the query automatically uses the join table to bring back all related Tags.
This demo just scratches the surface of what can be done with many-to-many relationships. For example, look for future content that shows how to introduce a join table payload while still continuing to use the relationship as many-to-many!
EF Core 5.0 preview 7
EF Core 5.0 preview 7 is available on NuGet now!
New features in preview 7 include:
- Register a factory for DbContext instances in D.I.
- Clear all tracked entities to reset DbContext state
- New pattern for store-generated defaults
- Better support for Cosmos partition keys
- New Cosmos configuration options
- Scaffold-DbContext now singularizes
- Support for database savepoints
Remember that all these features from previous previews are also included in preview 7:
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.6
EF Core 3.1.6 is available on NuGet now.
This is a patch release of 3.1 containing important bug fixes.
EF Core 5.0
We have completed a re-balancing of the work for EF Core 5.0. The major changes are:
- The full implementation of many-to-many has been pulled into EF Core 5.0. (Previously we were only planning for many-to-many navigations.)
- Reintroduction of split Includes has become a major feature for 5.0.
- Some of the smaller, lower priority enhancements and bug fixes have been punted to allow for these changes.
- The plan for architectural/provider documentation was too ambitious. We still believe this is important, but unfortunately it won't land with EF Core 5.0.
The plan at EF Core 5.0 plan as been updated to reflect this. Feedback is still 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 theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Full many-to-many support | In-progress |
Table-per-type (TPT) inheritance mapping | Done |
Filtered Include | Done |
Split Includes | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Done |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | In-progress |
Performance | In-progress |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @ChristopherHaws fixed a bug where properties with
ValueGeneratedOnAdd
are reseeded in every migration
Many thanks to all our contributors!
EF Core
- Model building
- Add public APIs to configure shared type entities
- Add API to allow configuration of the association entity type
- Log an error for Required on principal to dependent
- Set default max batch size for SQL Server
- Allow mapping entity types to SQL queries
- Reduce allocations in EntityType by short-circuiting
- Throw for shared type in inheritance
- Add a warning for decimal keys for SqlServer
- Remove IIndexNameChangedConvention
- Remove non-named shared type ModelBuilder overloads
- Rename IsEagerLoaded to AutoInclude
- Return void from AddShared and AddOwned
- Consistently refer to association entities as join entities
- Rename SharedEntity to SharedTypeEntity
- Deprecate defining query at Core level
- Query
- Fix small perf regression in query compilation
- Fix to apply pending selector on single result query before trying to expand collection navigation
- Fix to stop reading default value from databases
- Use correct column mappings for TVF/FromSql
- Disallow FromSql/TVF with TPT
- Make SqlExpression.Type to be reference type or non-nullable value type
- Fix incorrect results returned when joining a key-less view to an entity
- Use object.Equals internally in query for key comparison
- Regression test for a sub-query inside a projection from a filtered Queryable
- Reenable some query tests
- Regression test for left joins with Include
- Documentation
- Improve nullability guidance for DbSets
- Update What's New for preview 7
- Added savepoints to What's New for preview 7
- Update SQLite Limitations for 5.0
- Change tracking
- Miscellaneous
- Scaffolding
- Migrations
- Correctly generate null literals in arrays
- Save Changes
- Fix savepoint bugs
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.6
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 30, 2020
Expand to see status from this week...
Highlights
Lots of work this week finishing up, testing, and refining many-to-many, TPT, and other EF Core 5.0 features. Don't wait for the next preview--try now with the daily builds.
Using the daily builds is easy:
- Copy the
NuGet.config
from the link to your project/solution folder - Update your EF Core packages!
Daily builds work on both .NET Core 3.1 and the .NET 5.0 previews. Try now and give us feedback!
EF Core 5.0 preview 7
EF Core 5.0 preview 7 is available on NuGet now!
New features in preview 7 include:
- Register a factory for DbContext instances in D.I.
- Clear all tracked entities to reset DbContext state
- New pattern for store-generated defaults
- Better support for Cosmos partition keys
- New Cosmos configuration options
- Scaffold-DbContext now singularizes
- Support for database savepoints
Remember that all these features from previous previews are also included in preview 7:
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.6
EF Core 3.1.6 is available on NuGet now.
This is a patch release of 3.1 containing important bug fixes.
EF Core 5.0
We have completed a re-balancing of the work for EF Core 5.0. The major changes are:
- The full implementation of many-to-many has been pulled into EF Core 5.0. (Previously we were only planning for many-to-many navigations.)
- Reintroduction of split Includes has become a major feature for 5.0.
- Some of the smaller, lower priority enhancements and bug fixes have been punted to allow for these changes.
- The plan for architectural/provider documentation was too ambitious. We still believe this is important, but unfortunately it won't land with EF Core 5.0.
The plan at EF Core 5.0 plan as been updated to reflect this. Feedback is still 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 theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Full many-to-many support | In-progress |
Table-per-type (TPT) inheritance mapping | Done |
Filtered Include | Done |
Split Includes | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Done |
General query enhancements | In-progress |
Migrations and deployment experience | In-progress |
EF Core platforms experience | In-progress |
Performance | In-progress |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @SergerGood updated code to use TryGetValue method where appropriate
- @KaloyanIT updated error message for CoreStrings.ConflictingRelationshipNavigation
- @ErikEJ removed duplicate registration in AddEntityFrameworkDesignTimeServices
- @dzmitry-lahoda updated link to SQL Server Docker docs
- @bide45 aligned field name in code example with the description (e.g. Name to FullName)
- @jsportaro fixed grammar mistake
Many thanks to all our contributors!
EF Core
- Query
- Change alias of the column for TPT Discriminator
- Change TPT to use string discriminator column
- Rename defining query APIs
- Add test for ParameterExpression issue in query rewriting
- Fix bug in FromSqlExpression.Equals
- Add ToQuerySql
- Avoid reading default values from Cosmos database
- Allow user functions to be annotated with nullability propagation information
- Allow entity equality to work on client converted entity
- Disallow FromSql on owner when owned navigation is mapped to same table
- Make ParameterBasedSqlProcessor thread-safe
- Rewrite entity equality for dependents sharing table
- Model building
- Use default property names for join entity type
- Add nested lambda to ToTable API
- Add IConventionEntityTypeBuilder.HasSkipNavigation that takes an inverse
- Make discriminator read-only by default
- Fully support base type mapping names with precision/scale/size specified separately
- Discover self-referencing many-to-many relationships
- Make property bag entity types use an indexer properties rather than a shadow properties
- Don't write to computed column when table splitting
- Only create additional concurrency token properties when needed
- Validate shared views
- Configure command parameters as nullable for optional dependents in table splitting
- Migrations
- Don't warn for existing calls to CreateCheckConstraint
- Default DOTNET_ENVIRONMENT to Development
- Fix to synthesize default constraint and rebuild indexes
- Enable more operations on SQLite by rebuilding tables
- Test additional table rebuild scenarios
- Change tracking
- Documentation
- Dependencies
- Scaffolding
- Reverse engineer computed columns on SQLite
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the bottom represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.6
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.
August 6, 2020
Expand to see status from this week...
Highlights
We're fixing bugs and polishing features for EF Core 5.0 with almost 50 PRs in the last week!
- This includes seven PRs from the community--many thanks as always to all our contributors!
- Lots of bug fixes in query, model building, migrations, and more. Make sure to test with a daily build and tell us what you find while we still have time to fix issues!
- Interceptors and events for before and after SaveChanges are now implemented!
EF Core 5.0 preview 7
EF Core 5.0 preview 7 is available on NuGet now!
New features in preview 7 include:
- Register a factory for DbContext instances in D.I.
- Clear all tracked entities to reset DbContext state
- New pattern for store-generated defaults
- Better support for Cosmos partition keys
- New Cosmos configuration options
- Scaffold-DbContext now singularizes
- Support for database savepoints
Remember that all these features from previous previews are also included in preview 7:
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.6
EF Core 3.1.6 is available on NuGet now.
This is a patch release of 3.1 containing important bug fixes.
EF Core 5.0
We have completed a second re-balancing of the work for EF Core 5.0. The major changes are:
- The migrations bundles feature will be deferred until after the EF Core 5.0 release. However, several other targeted improvements related to migrations will be included in EF Core 5.0
- Support for required 1-1 dependents has been pulled into the EF Core 5.0 release.
- Some of the smaller, lower priority enhancements and bug fixes have been punted to allow for these changes.
The plan at EF Core 5.0 plan will be updated to reflect this. Feedback is still 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 theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Full many-to-many support | In-progress |
Table-per-type (TPT) inheritance mapping | Done |
Filtered Include | Done |
Split Includes | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Done |
General query enhancements | Done |
Migrations and deployment experience | Scoped |
EF Core platforms experience | In-progress |
Performance | Scoped |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @mikewodarczyk fixed a null reference exception when using EF Core with C# 9 record types
- @jeffsvajlenko fixed the weekly status updates link in readme
- @KaloyanIT implemented throwing a better exception message when Reverse cannot be translated
- @vanillajonathan fixed a type in the Sequence docs
- @SergerGood fixed an issue to use DisposeAsync when disposing the data reader in an async context
- @OOberoi fixed a typo in a method name
- @OOberoi fixed grammar in the relationships documenation
Many thanks to all our contributors!
EF Core
- Query
- Correctly specify types to match constraints in materialization functions
- Allow FromSql on owner by generating join
- Translate GroupBy-Aggregate with condition
- Translate Distinct operator over group element before aggregate
- Identify Count(*) in different SelectExpression differently
- Add general query logging
- Add query logger to member/method translators
- Fix bug in CaseExpression.VisitChildren
- Document internal classes are internal for 5.0
- Improve SQL generation by translating is operator
- Model building
- Fix shared type entity type bugs
- Throw for unmapped initialized collection navigation
- Configure backing field by attribute on skip navigation
- Make StoreObjectIdentifier a readonly struct
- Make InverseProperty work on skip navigations
- Add metadata for configuring required dependents
- Log a warning instead of throwing for IsRequired on ambiguous principal end
- Remove all ambiguous InverseAttribute skip navigations
- Remove TypeMapping annotation
- Add overloads for configuring shared type as owned type
- SaveChanges
- Migrations
- Testing
- Scaffolding
- Generate lambda with good identifiers
- Scaffold MaxLength attribute when using data annotations
- Dependencies
- Change tracking
- Implementation and testing for composite keys in many-to-many
- Documentation
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.6
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.
August 13, 2020
Expand to see status from this week...
Highlights
- The EF Core 3.1.7 patch release is available now on NuGet.
- EF Core 5.0 now has perf counters! Let us know which additional counters to expose.
- As always many thanks to the community, this week including a PR to support deferred transactions in Microsoft.Data.Sqlite
And of course we're continuing to fix issues and polish the experience for EF Core 5.0. Please try now with the latest daily build and file your feedback on GitHub.
EF Core 5.0 preview 7
EF Core 5.0 preview 7 is available on NuGet now!
New features in preview 7 include:
- Register a factory for DbContext instances in D.I.
- Clear all tracked entities to reset DbContext state
- New pattern for store-generated defaults
- Better support for Cosmos partition keys
- New Cosmos configuration options
- Scaffold-DbContext now singularizes
- Support for database savepoints
Remember that all these features from previous previews are also included in preview 7:
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.7
EF Core 3.1.7 is available on NuGet now.
This is a patch release of 3.1 containing important bug fixes.
EF Core 5.0
We have completed a second re-balancing of the work for EF Core 5.0. The major changes are:
- The migrations bundles feature will be deferred until after the EF Core 5.0 release. However, several other targeted improvements related to migrations will be included in EF Core 5.0
- Support for required 1-1 dependents has been pulled into the EF Core 5.0 release.
- Some of the smaller, lower priority enhancements and bug fixes have been punted to allow for these changes.
The plan at EF Core 5.0 plan will be updated to reflect this. Feedback is still 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 theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | In-progress |
Full many-to-many support | In-progress |
Table-per-type (TPT) inheritance mapping | Done |
Filtered Include | Done |
Split Includes | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Done |
General query enhancements | Done |
Migrations and deployment experience | Scoped |
EF Core platforms experience | In-progress |
Performance | Scoped |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | In-progress |
Pull requests from the last week
Community contributions
- @AlexanderTaeschner implemented deferred transactions in Microsoft.Data.Sqlite
- @m4ss1m0g added TryGetValue methods for properties
Many thanks to all our contributors!
EF Core
- Model building
- Add generic NavigationBuilder
- Configure OnDelete for join entity types on SQL Server
- Add CLR type for shared type entity type in debug view
- Determine column names for TPT in the model instead of a convention
- Target FKs to the derived table in TPT if possible
- Changes from API review for attributes
- Fixes for type mappings following API review
- Add ITableBase.IsOptional
- Make required dependent columns in shared table non-nullable
- Change tracking
- Query
- Materialize required dependents always
- Prune SelectExpression to remove not needed TPT LeftJoin
- Miscellaneous
- Implement perf counters
- General changes from API reviews changes. Also #21958.
- Migrations
- Generate transaction statements in SQL script
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.7
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.
August 20, 2020
Expand to see status from this week...
Highlights
-
Major new guidance and samples for EF Core in Blazor applications
- .NET Core 5.0 and .NET Core 3.1 guidance
- How to use AddDbContextFactory to manage your database sessions
- Plus more!
-
EF Community Standup with 45 minutes of many-to-many demos!
- We start with a simple example, then see how it works under-the-covers.
- Many-to-many is now complete and available in the daily builds
- We are still fixing bugs and polishing, so get your feedback in now!
EF Core 5.0 preview 7
EF Core 5.0 preview 7 is available on NuGet now!
New features in preview 7 include:
- Register a factory for DbContext instances in D.I.
- Clear all tracked entities to reset DbContext state
- New pattern for store-generated defaults
- Better support for Cosmos partition keys
- New Cosmos configuration options
- Scaffold-DbContext now singularizes
- Support for database savepoints
Remember that all these features from previous previews are also included in preview 7:
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.7
EF Core 3.1.7 is available on NuGet now.
This is a patch release of 3.1 containing important bug fixes.
EF Core 5.0
We have completed a second re-balancing of the work for EF Core 5.0. The major changes are:
- The migrations bundles feature will be deferred until after the EF Core 5.0 release. However, several other targeted improvements related to migrations will be included in EF Core 5.0
- Support for required 1-1 dependents has been pulled into the EF Core 5.0 release.
- Some of the smaller, lower priority enhancements and bug fixes have been punted to allow for these changes.
The plan at EF Core 5.0 plan will be updated to reflect this. Feedback is still 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 theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | Done |
Full many-to-many support | Done |
Table-per-type (TPT) inheritance mapping | Done |
Filtered Include | Done |
Split Includes | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Done |
General query enhancements | Done |
Migrations and deployment experience | Scoped/Done |
EF Core platforms experience | Scoped/Done |
Performance | Scoped |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | Done |
Pull requests from the last week
Community contributions
- @SergerGood reduced allocations by removing some boxing of structs
- @Psypher9 implemented Get-Migrations and update "migrations list" to show applied or pending
Many thanks to all our contributors!
EF Core
- Model building
- Don't create an FK constraint if a derived type in TPT uses table sharing
- Add FK constraints between TPT tables
- Don't identify dictionary indexer as nullable reference type
- Test for HasKey on an overridden property
- Make RelationalAnnotationProviderDependencies public
- Add overloads to HasConversion that take a ValueComparer
- Properly remove incompatible entity types with the same name
- Make ITableBase methods throw for entity types not mapped to the table
- Stop qualifying Type parameters with CLR
- Don't uniquify non-existing FKs
- Throw if same name is specified for a different shared type owned entity type
- Undo binary breaking change to INavigation
- API Review changes
- Fix an OwnsOne overload not passing through the type
- Remove referenced key when removing the FK from skip navigation
- DbContext
- Query
- Tools
- Workaround for PowerShell issue in PMC tools
- Workaround for project system issue in PMC tools
- Redo pubternalyzer with Roslyn Operations
- Cosmos
- SaveChanges
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.7
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.
August 27, 2020
Expand to see status from this week...
Highlights
EF Core 5.0 preview 8 is available now!
- TPT
- SQLite table rebuilds
- TVFs
- Plus lots of bug fixes and smaller enhancements!
Full details and blog link below.
EF Core 5.0 preview 8
EF Core 5.0 preview 8 is available on NuGet now!
New features in preview 8 include:
- Table-per-type (TPT) mapping
- Migrations: Rebuild SQLite tables
- Table-valued functions
- Flexible query/update mapping
- Context-wide split-query configuration
- PhysicalAddress mapping
- Add FieldInfo overload for NavigationBuilder
- Query generation for GroupBy with OwnsOne
- Support join after GroupByAggregate
- Generate a warning for multiple collection Includes
- Convert multiple equality on same column joined by Or/Else into SQL IN expression
- Make discriminator properties read-only be default
- Add an IDbContextFactory that pools context instances
- Cosmos: Allow PK with just the partition key
Remember that all these features from previous previews are also included in preview 8:
- Register a factory for DbContext instances in D.I.
- Clear all tracked entities to reset DbContext state
- New pattern for store-generated defaults
- Better support for Cosmos partition keys
- New Cosmos configuration options
- Scaffold-DbContext now singularizes
- Support for database savepoints
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.7
EF Core 3.1.7 is available on NuGet now.
This is a patch release of 3.1 containing important bug fixes.
EF Core 5.0
We have completed a second re-balancing of the work for EF Core 5.0. The major changes are:
- The migrations bundles feature will be deferred until after the EF Core 5.0 release. However, several other targeted improvements related to migrations will be included in EF Core 5.0
- Support for required 1-1 dependents has been pulled into the EF Core 5.0 release.
- Some of the smaller, lower priority enhancements and bug fixes have been punted to allow for these changes.
The plan at EF Core 5.0 plan will be updated to reflect this. Feedback is still 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 theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | Done |
Full many-to-many support | Done |
Table-per-type (TPT) inheritance mapping | Done |
Filtered Include | Done |
Split Includes | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Done |
General query enhancements | Done |
Migrations and deployment experience | Scoped/Done |
EF Core platforms experience | Scoped/Done |
Performance | Scoped/Done |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | In-progress |
Small enhancements | Done |
Pull requests merged in the last week
Community contributions
- @TheFanatr fixed attaching entities with generated non-key values
- @TheFanatr implemented translation of __jObject to access root
Many thanks to all our contributors!
EF Core
- Miscellaneous
- Downgrade to Microsoft.Azure.Cosmos 3.12.0
- Upgrade build SDK to 5.0 preview8
- Update to Microsoft.Data.SqlClient 2.0.1
- Punt VB support from analyzer to post 5.0
- Be consistent about ifdefs for .NET 5
- Be consistent about which NotNull attribute to use
- Sort resx file on generate
- Code cleanup for EF.Relational
- Code cleanup for miscellaneous packages
- Code cleanup for Microsoft.Data.Sqlite
- Code cleanup for tests
- Code cleanup for database providers
- Code cleanup for EF.Core
- Code cleanup for EF.Design
- Query
- Throw detailed exception message in buffered data reader
- Correct translation failure message
- Fix to push down into sub-query when applying over Skip after Distinct without OrderBy
- Fix for using variable in a .Select() from parent .SelectMany() scope
- Block queries with AsSplitQuery when collection was not split
- Test for NumberToBytesConverter on ulong RowVersion property
- Preserve value buffer indexes when adding navigation to weak type with in-memory provider
- Test for InMemory and byte array equality
- Test for complex case of null removal
- Add tests for split query and weak entities
- Model building
- Add ValueGenerated.OnUpdateSometimes for shared columns
- Improve AUTOINCREMENT support on SQLite
- Make IMutableAnnotatable methods correctly update the ConfigurationSource
- Stop using DbSet property name for table name of shared type entity types
- Don't use nulls for shadow properties in non-anonymous seed data
- Don't use PropertyInfo from unmapped base type
- Add a warning for unmapped foreign keys
- Re-run FK discovery convention when skip navigation changes
- Do not generate redundant ColumnName/Type in fluent API
- Migrations/tools
- Change tracking
- Documentation
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.0 preview 8
- 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 and LTS: EF Core 3.1.7
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.
September 10, 2020
Expand to see status from this week...
Highlights
EF Core 5.0 is done!
We're still fixing issues as they are found, but we're tracking at zero issues to fix for the release. (See the burndown below.)
Try now with a daily build!
A bumper two weeks of 76 PRs this time, since I was out for a short vacation:
- Dozens of bugs fixed
- Major review of exception messages
- Lots of docs being updated for EF Core 5.0
EF Core 5.0 preview 8
EF Core 5.0 preview 8 is available on NuGet now!
New features in preview 8 include:
- Table-per-type (TPT) mapping
- Migrations: Rebuild SQLite tables
- Table-valued functions
- Flexible query/update mapping
- Context-wide split-query configuration
- PhysicalAddress mapping
- Add FieldInfo overload for NavigationBuilder
- Query generation for GroupBy with OwnsOne
- Support join after GroupByAggregate
- Generate a warning for multiple collection Includes
- Convert multiple equality on same column joined by Or/Else into SQL IN expression
- Make discriminator properties read-only be default
- Add an IDbContextFactory that pools context instances
- Cosmos: Allow PK with just the partition key
Remember that all these features from previous previews are also included in preview 8:
- Register a factory for DbContext instances in D.I.
- Clear all tracked entities to reset DbContext state
- New pattern for store-generated defaults
- Better support for Cosmos partition keys
- New Cosmos configuration options
- Scaffold-DbContext now singularizes
- Support for database savepoints
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.8
EF Core 3.1.8 is available on NuGet now.
This is a patch release of 3.1 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 3.1.7.
EF Core 5.0
We have completed a second re-balancing of the work for EF Core 5.0. The major changes are:
- The migrations bundles feature will be deferred until after the EF Core 5.0 release. However, several other targeted improvements related to migrations will be included in EF Core 5.0
- Support for required 1-1 dependents has been pulled into the EF Core 5.0 release.
- Some of the smaller, lower priority enhancements and bug fixes have been punted to allow for these changes.
The plan at EF Core 5.0 plan will be updated to reflect this. Feedback is still 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 theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | Done |
Full many-to-many support | Done |
Table-per-type (TPT) inheritance mapping | Done |
Filtered Include | Done |
Split Includes | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Done |
General query enhancements | Done |
Migrations and deployment experience | Scoped/Done |
EF Core platforms experience | Scoped/Done |
Performance | Scoped/Done |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | Done |
Small enhancements | Done |
Pull requests merged in the last two weeks
Community contributions
- @0xced added support to create and initialize the TestStore inside InitializeAsync
- @nbuuck updated the ordering caveat in FromSql
Many thanks to all our contributors!
EF Core
- Documentation
- Link to tool manifest docs
- Document new commands and options for the tools
- Document defining query breaking change
- Add Cosmos breaking changes
- Add breaking changes docs for 5.0
- Avoid unnecessary views in URL to other product docs
- Cleanup of "What is new" section
- Update single/split query docs
- Add note on cancellation tokens
- Cleanup of query filters docs
- Add replacement for IQueryTypeConfiguration in breaking changes
- Fixes for links. Also #2603.
- Refactor and improve async documentation
- Add description headers for all EF Core conceptual doc pages
- Add docs on SQL Server-specific index config
- Fix header levels. Also #2594.
- Minor improvements to the Microsoft.Data.Sqlite docs
- Model building
- Remove extra ToList calls in MigrationsModelDiffer
- Allow discriminator properties to have value converter and comparer
- Make sure non-shared-type entity types aren't discovered while a shared-type entity type is being added
- Propagate MaxLength, Precision, Scale and IsUnicode to sharing columns
- Propagate identity seed and increment to sharing columns
- Add a test for indexes on overlapping FKs
- Relax restriction on derived FKs using value-generation properties from composite keys
- Add the column type to the migration when deleting a data using a removed column
- Cache derived types used in DerivedTypeDiscoveryConvention
- Minor model building perf improvements
- Improve exception message for missing shared table linking FK
- Change tracking
- Stop attempting to do local DetectChanges when not snapshot change-tracking
- Snapshot using comparer even when property is store-generated
- Don't check for temporary values on non-key properties when deleting an entity
- Re-enable Can_use_sequence_end_to_end_from_multiple_contexts_concurrently_async for in-memory
- Stop repeatedly detecting changed properties on Deleted entities
- Fix return values from ResetAsync
- Cache SkipDetectChanges on model as a field for perf
- Cache candidate properties for propagation and generation for perf
- Cache change detector in state manager CascadeDelete for perf
- Cleanup NaN handling in value comparers
- Query
- Find correct table to use when owned entity is mapped to different table
- Print expression when throwing null type mapping in SQL tree
- Add fix for identifying columns in the case of distinct
- Add fix for AssertIncludeCollection ordering of elements
- Make DbFunctions non-evaluatable
- Update exception message for LogMultipleCollectionIncludeWarning
- Add optimization to conditional being equated to equality
- Handle multiple lets with weak entities
- Add regression tests for query issues: #15215 #22300 #22284 #22299 #22282
- Miscellaneous
- Update daily builds guidance
- Flow missing cancellation token in HiLo generator
- Remove Microsoft.Azure.Cosmos.Direct from nupkg
- Merge ExistingConnectionTest with ConnectionSpecificationTest
- Update to SQLitePCLRaw 2.0.4
- Re-enable exception serialization tests
- Exception message/resource string review: #22469 #22450 #22417 #22392 #22373 #22343 #22333 #22321
- Proxies
- SaveChanges
- Migrations
- Tools
- Throw a better exception when ActiveConfiguration returns null in the PMC
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.0 preview 8
- 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 and LTS: EF Core 3.1.8
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.
September 17, 2020
Expand to see status from this week...
Highlights
EF Core 5.0 RC1 is feature complete on NuGet with a go-live license!
- Over 3600 downloads since Monday
- We're fixing bugs for RC2 as they are filed
- Try it now!
Meanwhile, the team is also working on documentation and internal quality.
EF Core 5.0 RC1
New features in RC1 include:
- Many-to-many relationships
- Map entity types to queries
- Event counters
- Property bags
- SaveChanges interception and events
- Exclude tables from migrations
- Required 1:1 dependents
- Options for migration generation
- Migrations scripts with transactions
- See pending migrations
- ModelBuilder API for value comparers
- EntityEntry TryGetValue methods
- Default max batch size for SQL Server
- Default environment to Development
- Better migrations column ordering
- Translation of is on Cosmos
- User-mapped functions can now be annotated to control null propagation
- Support for translation of GroupBy with conditional aggregates
- Translation of Distinct operator over group element before aggregate
- Model building for fields
Remember that all these features from previous previews are also included in RC1:
- Table-per-type (TPT) mapping
- Migrations: Rebuild SQLite tables
- Table-valued functions
- Flexible query/update mapping
- Context-wide split-query configuration
- PhysicalAddress mapping
- Add FieldInfo overload for NavigationBuilder
- Query generation for GroupBy with OwnsOne
- Support join after GroupByAggregate
- Generate a warning for multiple collection Includes
- Convert multiple equality on same column joined by Or/Else into SQL IN expression
- Make discriminator properties read-only be default
- Add an IDbContextFactory that pools context instances
- Cosmos: Allow PK with just the partition key
- Register a factory for DbContext instances in D.I.
- Clear all tracked entities to reset DbContext state
- New pattern for store-generated defaults
- Better support for Cosmos partition keys
- New Cosmos configuration options
- Scaffold-DbContext now singularizes
- Support for database savepoints
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.8
EF Core 3.1.8 is available on NuGet now.
This is a patch release of 3.1 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 3.1.7.
EF Core 5.0
We have completed a second re-balancing of the work for EF Core 5.0. The major changes are:
- The migrations bundles feature will be deferred until after the EF Core 5.0 release. However, several other targeted improvements related to migrations will be included in EF Core 5.0
- Support for required 1-1 dependents has been pulled into the EF Core 5.0 release.
- Some of the smaller, lower priority enhancements and bug fixes have been punted to allow for these changes.
The plan at EF Core 5.0 plan will be updated to reflect this. Feedback is still 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 theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | Done |
Full many-to-many support | Done |
Table-per-type (TPT) inheritance mapping | Done |
Filtered Include | Done |
Split Includes | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Done |
General query enhancements | Done |
Migrations and deployment experience | Scoped/Done |
EF Core platforms experience | Scoped/Done |
Performance | Scoped/Done |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | Done |
Small enhancements | Done |
Pull requests merged in the last two weeks
Community contributions
- @0xced removed the beta note about the Oracle.EntityFrameworkCore provider
- @hyperoceanic fixed some typos in the Cosmos docs
- @Arnab-Developer fixed a typo in the 'Applying Migrations with EF Core' document
Many thanks to all our contributors!
EF Core
- Change tracking
- (RC2) Change ChangeTrackingStrategy from annotation to field
- Model building
- (RC2) Throw for ForeignKeyAttribute on skip navigation
- (RC2) Handle stale skip FKs in ForeignKeyPropertyDiscoveryConvention
- (RC2) Add RelationalModel debug property to Model
- Reverse engineering
- (RC2) Remove ColumnType annotation from scaffolded code
- Query
- Miscellaneous
- Move some provider-facing tests to specifications
- Update to .NET SDK 5.0 RC1
- Improve exception messages
- Improve resource strings for the design-time
- Improve Microsoft.Data.Sqlite resources
- Documentation
- Added What's new in RC1
- Tweaks to daily build guidance after feedback
- Add a breaking change note for no client methods
- Fixed typo in related data doc
- Tweak wording on migrations warning
- Split related data page into separate pages
- Remove ms.assetid
- Document deferred transactions in Microsoft.Data.Sqlite
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.8
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.
September 24, 2020
Expand to see status from this week...
Highlights
- More than 12,000 downloads of EF Core 5.0 RC1!
- We're fixing issues as they are found
- Nine customer-reported RC1 issues fixed this week for RC2 (see below)
Try it now and report bugs!
Meanwhile, the team continues to work on documentation and internal quality.
EF Core 5.0 RC1
EF Core 5.0 RC1 is feature complete on NuGet with a go-live license!
New features in RC1 include:
- Many-to-many relationships
- Map entity types to queries
- Event counters
- Property bags
- SaveChanges interception and events
- Exclude tables from migrations
- Required 1:1 dependents
- Options for migration generation
- Migrations scripts with transactions
- See pending migrations
- ModelBuilder API for value comparers
- EntityEntry TryGetValue methods
- Default max batch size for SQL Server
- Default environment to Development
- Better migrations column ordering
- Translation of is on Cosmos
- User-mapped functions can now be annotated to control null propagation
- Support for translation of GroupBy with conditional aggregates
- Translation of Distinct operator over group element before aggregate
- Model building for fields
Remember that all these features from previous previews are also included in RC1:
- Table-per-type (TPT) mapping
- Migrations: Rebuild SQLite tables
- Table-valued functions
- Flexible query/update mapping
- Context-wide split-query configuration
- PhysicalAddress mapping
- Add FieldInfo overload for NavigationBuilder
- Query generation for GroupBy with OwnsOne
- Support join after GroupByAggregate
- Generate a warning for multiple collection Includes
- Convert multiple equality on same column joined by Or/Else into SQL IN expression
- Make discriminator properties read-only be default
- Add an IDbContextFactory that pools context instances
- Cosmos: Allow PK with just the partition key
- Register a factory for DbContext instances in D.I.
- Clear all tracked entities to reset DbContext state
- New pattern for store-generated defaults
- Better support for Cosmos partition keys
- New Cosmos configuration options
- Scaffold-DbContext now singularizes
- Support for database savepoints
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.8
EF Core 3.1.8 is available on NuGet now.
This is a patch release of 3.1 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 3.1.7.
EF Core 5.0
EF Core 5.0 is feature complete in the RC1 release. We are fixing bugs as they are found in the release candidates. See the EF Core 5.0 plan for details.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | Done |
Full many-to-many support | Done |
Table-per-type (TPT) inheritance mapping | Done |
Filtered Include | Done |
Split Includes | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Done |
General query enhancements | Done |
Migrations and deployment experience | Scoped/Done |
EF Core platforms experience | Scoped/Done |
Performance | Scoped/Done |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | Done |
Small enhancements | Done |
Pull requests merged in the last two weeks
Community contributions
- @sajadtorkamani fixed a typo in the migrations docs
- @0xced added System.Data.SQLite to the list of EF6 providers
- @joakimriedel fixed wrong code sample for AsSplitQuery/AsSingleQuery
Many thanks to all our contributors!
EF Core
- Documentation
- Testing
- Miscellaneous
- Model building
- Change tracking
- Query
- Type mapping
- Migrations
- (RC2) Correctly generate UseIdentityColumn(s) API in snapshot
- SaveChanges
- (RC2) Also clear the store generated values when setting a normal value
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.8
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.
October 1, 2020
Expand to see status from this week...
Highlights
Help us find the bugs!
With around 700 issues fixed, EF Core 5.0 must have bugs. But we've only seen a trickle reported on RC1.
So run your code on EF Core RC1 and help us find those bugs!
Meanwhile, the team continues to work on documentation and internal quality, while also beginning EF Core 6.0 planning.
EF Core 5.0 RC1
EF Core 5.0 RC1 is feature complete on NuGet with a go-live license!
New features in RC1 include:
- Many-to-many relationships
- Map entity types to queries
- Event counters
- Property bags
- SaveChanges interception and events
- Exclude tables from migrations
- Required 1:1 dependents
- Options for migration generation
- Migrations scripts with transactions
- See pending migrations
- ModelBuilder API for value comparers
- EntityEntry TryGetValue methods
- Default max batch size for SQL Server
- Default environment to Development
- Better migrations column ordering
- Translation of is on Cosmos
- User-mapped functions can now be annotated to control null propagation
- Support for translation of GroupBy with conditional aggregates
- Translation of Distinct operator over group element before aggregate
- Model building for fields
Remember that all these features from previous previews are also included in RC1:
- Table-per-type (TPT) mapping
- Migrations: Rebuild SQLite tables
- Table-valued functions
- Flexible query/update mapping
- Context-wide split-query configuration
- PhysicalAddress mapping
- Add FieldInfo overload for NavigationBuilder
- Query generation for GroupBy with OwnsOne
- Support join after GroupByAggregate
- Generate a warning for multiple collection Includes
- Convert multiple equality on same column joined by Or/Else into SQL IN expression
- Make discriminator properties read-only be default
- Add an IDbContextFactory that pools context instances
- Cosmos: Allow PK with just the partition key
- Register a factory for DbContext instances in D.I.
- Clear all tracked entities to reset DbContext state
- New pattern for store-generated defaults
- Better support for Cosmos partition keys
- New Cosmos configuration options
- Scaffold-DbContext now singularizes
- Support for database savepoints
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.8
EF Core 3.1.8 is available on NuGet now.
This is a patch release of 3.1 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 3.1.7.
EF Core 5.0
EF Core 5.0 is feature complete in the RC1 release. We are fixing bugs as they are found in the release candidates. See the EF Core 5.0 plan for details.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | Done |
Full many-to-many support | Done |
Table-per-type (TPT) inheritance mapping | Done |
Filtered Include | Done |
Split Includes | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Done |
General query enhancements | Done |
Migrations and deployment experience | Scoped/Done |
EF Core platforms experience | Scoped/Done |
Performance | Scoped/Done |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | Done |
Small enhancements | Done |
Pull requests merged in the last two weeks
Community contributions
- @cincuranet fixed indentation in a code snippet
- @dchristensen added a warning about lost custom operations when squashing migrations
- @gurmeetsinghdke added a hyperlink to 'Entity Framework Tools for Visual Studio'
Many thanks to all our contributors!
EF Core
- Model building
- Documentation
- Document SQLite idempotent script limitations
- Updated NuGet packages and settings for EF Core with Xamarin on iOS
- Document pluralizer breaking change
- Document IndexBuilder.HasName breaking change
- Update daily builds to call out the GA daily build
- Update issue templates to remove discussions
- Update API docs
- Miscellaneous
- Replace AsyncLock with SemaphoreSlim
- Improve exception messages
- Bump Microsoft.Azure.Cosmos from 3.12.0 to 3.13.0
- Rename Analyzer test project name
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.8
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.
October 22, 2020
Expand to see status from this week...
Highlights
EF Core 5.0 RC2 is on NuGet now.
RC2 is an update to the feature-complete RC1 release containing 39 new bug fixes and tweaks. It has a go-live license, so update now to get all the new features and bug fixes!
The team is now focused on documentation, internal quality, and planning. Be sure to check out the new 5.0 documentation for:
- Many-to-many configuration
- TPT inheritance configuration
- ASP.NET Core Blazor Server with Entity Framework Core
- EF Core with WPF on .NET Core tutorial
- Updated Xamarin with EF Core tutorial
- EF Core 5.0 breaking changes
- Testing code that uses EF Core
- Collations and case sensitivity
- Indexers and property bag entity types
- Required dependent entities
- Updated spatial (GIS) documentation
- Updated Migrations docs
- Updated Cosmos docs for partition keys and ETags
- Savepoints
- SQL Server function mappings
- SQLite function mappings
- Cosmos function mappings
EF Core 5.0 RC2
EF Core 5.0 RC2 is feature complete on NuGet with a go-live license.
New features in EF Core 5.0 include:
- Many-to-many relationships
- Map entity types to queries
- Event counters
- Property bags
- SaveChanges interception and events
- Exclude tables from migrations
- Required 1:1 dependents
- Options for migration generation
- Migrations scripts with transactions
- See pending migrations
- ModelBuilder API for value comparers
- EntityEntry TryGetValue methods
- Default max batch size for SQL Server
- Default environment to Development
- Better migrations column ordering
- Translation of is on Cosmos
- User-mapped functions can now be annotated to control null propagation
- Support for translation of GroupBy with conditional aggregates
- Translation of Distinct operator over group element before aggregate
- Model building for fields
- Table-per-type (TPT) mapping
- Migrations: Rebuild SQLite tables
- Table-valued functions
- Flexible query/update mapping
- Context-wide split-query configuration
- PhysicalAddress mapping
- Add FieldInfo overload for NavigationBuilder
- Query generation for GroupBy with OwnsOne
- Support join after GroupByAggregate
- Generate a warning for multiple collection Includes
- Convert multiple equality on same column joined by Or/Else into SQL IN expression
- Make discriminator properties read-only be default
- Add an IDbContextFactory that pools context instances
- Cosmos: Allow PK with just the partition key
- Register a factory for DbContext instances in D.I.
- Clear all tracked entities to reset DbContext state
- New pattern for store-generated defaults
- Better support for Cosmos partition keys
- New Cosmos configuration options
- Scaffold-DbContext now singularizes
- Support for database savepoints
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.9
EF Core 3.1.9 is available on NuGet now. This is a patch release of containing only critical bug fixes.
EF Core 5.0
EF Core 5.0 is feature complete in the RC2 release. We are fixing bugs as they are found in the release candidates. See the EF Core 5.0 plan for details.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | Done |
Full many-to-many support | Done |
Table-per-type (TPT) inheritance mapping | Done |
Filtered Include | Done |
Split Includes | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Done |
General query enhancements | Done |
Migrations and deployment experience | Scoped/Done |
EF Core platforms experience | Scoped/Done |
Performance | Scoped/Done |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | Done |
Small enhancements | Done |
Pull requests merged in the last three weeks
Community contributions
- @Marusyk simplified the string.IsNullOrEmpty translation for SQL Server
- @ErikEJ implemented scaffolding table and column description as XML comments
- @tkp1n reduced allocation by avoiding lambda capture of cancellation token
- @gfoidl fixed potential torn reads in EventCounters
- @ErikEJ fixed an issue to floor the sequence values to long Min and Max
- @ErikEJ fixed an issue to accept empty and emoji column names when reverse engineering
- @joaopgrassi added template methods around DbConnection inside RelationalConnection
- @jantlee corrected "setup" noun to verb issue
- @nschonni disabled CS0169 warning
- @nschonni fixed the build to only build samples if files are changed
- @nschonni added paths filtering for markdownlint CI
- @kotpal fixed a typo in whatsnew.md
- @cincuranet fixed indentation in code snippet
Many thanks to all our contributors!
EF Core
- Documentation
- Fix incorrect tabs in backing field docs
- Tweak breaking-changes.md
- Replace bold with headings in breaking changes pages
- Add a defining query test for a view-mapped entity type
- Add documentation for WithPartitionKey
- Use delete instead of drop
- Tweak NRT guidance
- Add documentation for IEntityTypeConfiguration
- Enable markdownlint check in CI
- Simplify tool installation instructions
- Update samples to .NET SDK 5.0 RC2
- State explicitly that the in-memory database is for testing
- Enable Dependabot for samples
- Build samples on PRs from forks
- Document SQL Server function mappings
- Fix slugs
- Add documentation for property bag entity types
- Add documentation for Cosmos ETag configuration
- Add documentation for excluding tables from migrations
- Add docs for simple logging
- Document Cosmos function mappings
- Scrub for versions 2.1 and older
- Link to Microsoft.Data.Sqlite docs
- Reorganize query samples
- Update Xamarin sample with proper linker settings
- Fix the samples build
- Stop spamming our alumni friends
- Document SQLite function mappings
- Add documentation for view mapping
- Update instructions for installing dotnet-ef
- Update spatial docs
- Add savepoints docs and other improvements to "saving"
- Add documentation for TPT configuration
- Add documentation for many-to-many relationship configuration
- Add documentation for required dependents
- Miscellaneous
- (3.1) Include commit SHA in AssemblyInformationalVersion value
- (5.0) Workaround for mono bug in GetCustomAttributes affecting Xamarin Android
- Disable auto-generating symbols.nupkgs
- Bump Microsoft.Azure.Cosmos from 3.13.0 to 3.14.0
- Bump IdentityServer4.EntityFramework from 4.1.0 to 4.1.1
- Improved exception messages
- Alter CI to run Rich Navigation, add new Rich Nav specific pipeline
- SDK changes: #23051 #22984 #22918
- Migrations
- Model building
- Query
- Testing
- Change tracking
- (5.0) Fix places where skip navigations are missed
Microsoft.Data.Sqlite
- Implement savepoint API for Microsoft.Data.Sqlite
Burn-down for EF Core 5.0
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.9
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.
October 29, 2020
Expand to see status from this week...
Highlights
We want to hear from YOU! Take the EF Core survey now!
- Want a MongoDB provider? Let us know!
- Issues moving from EF6? Let us know!
- Using Blazor, UWP, or Windows Forms? Let us know!
- Need features from the Cosmos provider? Let us know!
- Trouble deploying your database? Let us know!
Many people use EF Core in many different ways. Let your voice be counted and help us plan the most comprehensive, cross-platform, high-performing and feature complete version. Ever!
Direct link to the survey: https://www.surveymonkey.com/r/RX6LCPF
Community Standup
Learn about database collations and EF Core 5.0 in the latest EF Core Community Standup.
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.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 5.0 RC2
EF Core 5.0 RC2 is feature complete on NuGet with a go-live license.
New features in EF Core 5.0 include:
- Many-to-many relationships
- Map entity types to queries
- Event counters
- Property bags
- SaveChanges interception and events
- Exclude tables from migrations
- Required 1:1 dependents
- Options for migration generation
- Migrations scripts with transactions
- See pending migrations
- ModelBuilder API for value comparers
- EntityEntry TryGetValue methods
- Default max batch size for SQL Server
- Default environment to Development
- Better migrations column ordering
- Translation of is on Cosmos
- User-mapped functions can now be annotated to control null propagation
- Support for translation of GroupBy with conditional aggregates
- Translation of Distinct operator over group element before aggregate
- Model building for fields
- Table-per-type (TPT) mapping
- Migrations: Rebuild SQLite tables
- Table-valued functions
- Flexible query/update mapping
- Context-wide split-query configuration
- PhysicalAddress mapping
- Add FieldInfo overload for NavigationBuilder
- Query generation for GroupBy with OwnsOne
- Support join after GroupByAggregate
- Generate a warning for multiple collection Includes
- Convert multiple equality on same column joined by Or/Else into SQL IN expression
- Make discriminator properties read-only be default
- Add an IDbContextFactory that pools context instances
- Cosmos: Allow PK with just the partition key
- Register a factory for DbContext instances in D.I.
- Clear all tracked entities to reset DbContext state
- New pattern for store-generated defaults
- Better support for Cosmos partition keys
- New Cosmos configuration options
- Scaffold-DbContext now singularizes
- Support for database savepoints
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.9
EF Core 3.1.9 is available on NuGet now. This is a patch release of containing only critical bug fixes.
EF Core 5.0
EF Core 5.0 is feature complete in the RC2 release. We are fixing bugs as they are found in the release candidates. See the EF Core 5.0 plan for details.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | Done |
Full many-to-many support | Done |
Table-per-type (TPT) inheritance mapping | Done |
Filtered Include | Done |
Split Includes | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Done |
General query enhancements | Done |
Migrations and deployment experience | Scoped/Done |
EF Core platforms experience | Scoped/Done |
Performance | Scoped/Done |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | Done |
Small enhancements | Done |
Pull requests merged in the last week
Community contributions
- @RaymondHuy implemented a
[Unicode]
mapping attribute - @nschonni cleaned up markdown files
- @mrlife corrected Blog to Tag in the What's New docs
Many thanks to all our contributors!
EF Core
- Miscellaneous
- Improve exception messages
- Bump Microsoft.AspNetCore.OData from 7.4.1 to 7.5.1
- Update to Microsoft.Azure.Cosmos 3.15.0-preview
- Update to Microsoft.Data.SqlClient 2.1.0-preview2
- Documentation
- Split single/split query in it's own page
- Document design-time services
- Migrations
- Testing
- Test using OData
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.9
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.
November 5, 2020
Expand to see status from this week...
Highlights
See that date up there? ☝ ☝ ☝ It's November! That means EF Core 5.0 is released next week!
Join Jeremy and Shay at .NET Conf on Tuesday, November 10, 11AM PST for lots of great unicorn goodness!
Can't wait? Pass the time by taking the EF Core survey and help decide the future direction of EF Core.
EF Core 5.0 RC2
EF Core 5.0 RC2 is feature complete on NuGet with a go-live license.
New features in EF Core 5.0 include:
- Many-to-many relationships
- Map entity types to queries
- Event counters
- Property bags
- SaveChanges interception and events
- Exclude tables from migrations
- Required 1:1 dependents
- Options for migration generation
- Migrations scripts with transactions
- See pending migrations
- ModelBuilder API for value comparers
- EntityEntry TryGetValue methods
- Default max batch size for SQL Server
- Default environment to Development
- Better migrations column ordering
- Translation of is on Cosmos
- User-mapped functions can now be annotated to control null propagation
- Support for translation of GroupBy with conditional aggregates
- Translation of Distinct operator over group element before aggregate
- Model building for fields
- Table-per-type (TPT) mapping
- Migrations: Rebuild SQLite tables
- Table-valued functions
- Flexible query/update mapping
- Context-wide split-query configuration
- PhysicalAddress mapping
- Add FieldInfo overload for NavigationBuilder
- Query generation for GroupBy with OwnsOne
- Support join after GroupByAggregate
- Generate a warning for multiple collection Includes
- Convert multiple equality on same column joined by Or/Else into SQL IN expression
- Make discriminator properties read-only be default
- Add an IDbContextFactory that pools context instances
- Cosmos: Allow PK with just the partition key
- Register a factory for DbContext instances in D.I.
- Clear all tracked entities to reset DbContext state
- New pattern for store-generated defaults
- Better support for Cosmos partition keys
- New Cosmos configuration options
- Scaffold-DbContext now singularizes
- Support for database savepoints
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.9
EF Core 3.1.9 is available on NuGet now. This is a patch release of containing only critical bug fixes.
Community Standups
Learn about database collations and EF Core 5.0 in the latest EF Core Community Standup.
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.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 5.0
EF Core 5.0 is feature complete in the RC2 release. We are fixing bugs as they are found in the release candidates. See the EF Core 5.0 plan for details.
Each high-level theme for EF Core 5.0 is linked in the table below together with its current high-level status.
EF Core 5.0 Theme | Status |
---|---|
Many-to-many navigation properties (a.k.a "skip navigations") | Done |
Full many-to-many support | Done |
Table-per-type (TPT) inheritance mapping | Done |
Filtered Include | Done |
Split Includes | Done |
Rationalize ToTable, ToQuery, ToView, FromSql, etc. | Done |
General query enhancements | Done |
Migrations and deployment experience | Scoped/Done |
EF Core platforms experience | Scoped/Done |
Performance | Scoped/Done |
Architectural/contributor documentation | Cut |
Microsoft.Data.Sqlite documentation | Done |
General documentation | In-progress |
Fixing bugs | Done |
Small enhancements | Done |
Pull requests merged in the last week
Community contributions
- @ralmsdeveloper contributed query translation for ToString on SQLite
- @scomert contributed query translation for Regex.IsMatch on SQLite
Many thanks to all our contributors!
EF Core
- Documentation
- Update docs for Migrations with Multiple Providers
- Add EntityFrameworkCore.ConfigurationManager extension
- Document passing design-time args
- Add note to discourage seeding of large values
- Update breaking change on TFM in EF Core 3.1
- Document new support for virtual/stored computed columns
- Clarify what happens in query when local changes/added entities
- Query
- Miscellaneous
- Model building
- SaveChanges
Burn-down for EF Core 5.0
This is the burn-down chart we use internally to track progress towards EF Core 5.0.
- The gray bar at the top represents all the issues already fixed for 5.0
- The 'Closed' category only includes issues that have been fixed, 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.
- We're aiming to be feature-complete by the beginning of September.
Builds to use
- The daily builds are the most up-to-date available.
- Preview: EF Core 5.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 and LTS: EF Core 3.1.9
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.
November 12, 2020
Expand to see status from this week...
Highlights
EF Core 5.0 is here!
The .NET Blog announcement has full details and also favorite 5.0 feature picks from top EF folks: @julielerman, @divega, @JonPSmith, and @ErikEJ.
More? 😲 Check out #dotnetconf sessions on EF Core 5.0 from @jeremylikness and @roji, and the EF Core Power Tools from @ErikEJ.
Yet more? 😲😲 An EF Core 5.0 CODE Magazine article by @julielerman.
Still not enough? 😲😲😲 Mark your calendar: A special extended EF Core Community Standup on Wednesday, Nov 18, 10am Pacific where all these people join us to discuss EF Core 5.0!
And if you've got time for more still...then send us a PR for something. ;-)
New features in EF Core 5.0 include:
- Many-to-many relationships
- Map entity types to queries
- Event counters
- Property bags
- SaveChanges interception and events
- Exclude tables from migrations
- Required 1:1 dependents
- Options for migration generation
- Migrations scripts with transactions
- See pending migrations
- ModelBuilder API for value comparers
- EntityEntry TryGetValue methods
- Default max batch size for SQL Server
- Default environment to Development
- Better migrations column ordering
- Translation of is on Cosmos
- User-mapped functions can now be annotated to control null propagation
- Support for translation of GroupBy with conditional aggregates
- Translation of Distinct operator over group element before aggregate
- Model building for fields
- Table-per-type (TPT) mapping
- Migrations: Rebuild SQLite tables
- Table-valued functions
- Flexible query/update mapping
- Context-wide split-query configuration
- PhysicalAddress mapping
- Add FieldInfo overload for NavigationBuilder
- Query generation for GroupBy with OwnsOne
- Support join after GroupByAggregate
- Generate a warning for multiple collection Includes
- Convert multiple equality on same column joined by Or/Else into SQL IN expression
- Make discriminator properties read-only be default
- Add an IDbContextFactory that pools context instances
- Cosmos: Allow PK with just the partition key
- Register a factory for DbContext instances in D.I.
- Clear all tracked entities to reset DbContext state
- New pattern for store-generated defaults
- Better support for Cosmos partition keys
- New Cosmos configuration options
- Scaffold-DbContext now singularizes
- Support for database savepoints
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.10
EF Core 3.1.10 is available on NuGet now. This is a patch release of containing only critical bug fixes.
Community Standups
Mark your calendar On Wednesday, November 18th at 10am Pacific Time, the EF Core team will host a special edition of the EF Core Community Standup. Our special guests are pillars of the EF community @julielerman, @divega, @JonPSmith, and @ErikEJ. Join us for a live panel discussion about the latest 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.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 6.0
We have started the planning process for EF Core 6.0. More details soon...
Pull requests merged in the last week
Community contributions
- @fagnercarvalho added verification for non-nullable properties saved to the in-memory database
- @dennisseders fixed incomplete link text
- @dennisseders updated EF Core repo URLs with actual location
- @dennisseders updated occurrences of ORM to O/RM
- @khalidabuhakmeh fixed typos in the breaking changes doc
Many thanks to all our contributors!
EF Core
- Documentation
- Add links to some community standup sessions
- Add EF Core survey as card and TOC item
- Add a sample that uses a separate Migrations project
- Document two breaking changes for EF Core 5.0
- Update Cosmos cross-partition limitation
- Update table-of-contents
- Fixing several doc issues
- Add note about M2M scaffolding not yet implemented
- Docs for logging, events, and diagnostics
- Add a note about IX-Async in client eval
- Update no-tracking docs for identity resolution
- Add documentation for complete discriminator mapping
- Update releases page for 5.0
- Add doc for indexer property
- Update versions to 5.0
- Fix many-to-many SQL
- Add database functions docs
- New docs for context creation and initialization
- Query
- (3.1.11) Add missing Ordinal to parameter StartsWith comparison
- Fix is operator for InMemory
- Add support for set operations between 2 collection navs
- Remove test for unsupported scenario
- Re-enable in-memory test for optional navigation access
- SqlServer: date constant in DateAdd method is always datetime
- Re-enable previously failing test
- Cosmos: Add support for char literals
- Cosmos: Instance can be null for member translation
- 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 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.0
- LTS: EF Core 3.1.10
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.
November 19, 2020
Expand to see status from this week...
Highlights
Wow! What a couple of weeks it has been! Already more than 130,000 NuGet downloads of EF Core 5.0. Plus lots of great content on blogs, at .NET Conf, and on the community standup.
This week we have been fixing issues for 5.0.1 as they are filed, working on content, and adopting C# 9 nullable reference types (NRTs).
New features in EF Core 5.0 include:
- Many-to-many relationships
- Map entity types to queries
- Event counters
- Property bags
- SaveChanges interception and events
- Exclude tables from migrations
- Required 1:1 dependents
- Options for migration generation
- Migrations scripts with transactions
- See pending migrations
- ModelBuilder API for value comparers
- EntityEntry TryGetValue methods
- Default max batch size for SQL Server
- Default environment to Development
- Better migrations column ordering
- Translation of is on Cosmos
- User-mapped functions can now be annotated to control null propagation
- Support for translation of GroupBy with conditional aggregates
- Translation of Distinct operator over group element before aggregate
- Model building for fields
- Table-per-type (TPT) mapping
- Migrations: Rebuild SQLite tables
- Table-valued functions
- Flexible query/update mapping
- Context-wide split-query configuration
- PhysicalAddress mapping
- Add FieldInfo overload for NavigationBuilder
- Query generation for GroupBy with OwnsOne
- Support join after GroupByAggregate
- Generate a warning for multiple collection Includes
- Convert multiple equality on same column joined by Or/Else into SQL IN expression
- Make discriminator properties read-only be default
- Add an IDbContextFactory that pools context instances
- Cosmos: Allow PK with just the partition key
- Register a factory for DbContext instances in D.I.
- Clear all tracked entities to reset DbContext state
- New pattern for store-generated defaults
- Better support for Cosmos partition keys
- New Cosmos configuration options
- Scaffold-DbContext now singularizes
- Support for database savepoints
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.10
EF Core 3.1.10 is available on NuGet now. This is a patch release of containing only critical bug fixes.
Community Standups
We had great fun at the last community standup--a special edition with pillars of the EF community: @julielerman, @divega, @JonPSmith, and @ErikEJ. Each of our guests shared their favorite feature of EF Core 5.0, as well as great chat and maybe some cake. If you missed it live, then there's still chance to catch the recording on YouTube. us to discuss EF Core 5.0!
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.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 6.0
We have started the planning process for EF Core 6.0. More details soon...
Pull requests merged in the last week
Community contributions
- @umitkavala made a fix to unset EnableContentResponseOnWrite
- @leonardoporro added Detached Mapper to the external extensions docs
Many thanks to all our contributors!
EF Core
- Query
- (5.0.1) Match types in conditional during client evaluation
- (5.0.1) Don't clear projection mapping when adding single projection
- (5.0.1) Pushdown into subquery when applying group by over a group by
- (5.0.1) Properly generate expression to read from BufferedDataReader
- (5.0.1) InMemory: Copy correct value buffer data when doing LeftJoin
- (5.0.1) Correctly compute ordering to be copied from outer in collection join
- (5.0.1) Generate predicate correctly when expanding owned collections
- Improve optimization of "false==(expr)
- SQLite: Add glob, hex & substr functions
- Sqlite: Translate char.ToLower and ToUpper
- Assign nullability to entity shaper correctly for set operations
- Merge sync/async query tests into one
- Remove QueryFailed
- Enabled tests marked with sqlite bug
- Function and parameter names flipped for DbFunctionInvalidParameterName
- Add regression tests to several bugs that were fixed previously
- Miscellaneous
- Documentation
- SaveChanges
- Scaffolding
- Model building
- Migrations
Microsoft.Data.Sqlite
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.0
- LTS: EF Core 3.1.10
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.
December 10, 2020
Expand to see status from this week...
Highlights
It's been a busy year! 5.0.0 has been out for a month and is going strong; 610,671 NuGet downloads so far!
Building on this, 5.0.1 is on NuGet now with 26 important bug fixes!
This will be the last weekly update of the year; we'll come back in January with the plan for EF Core 6.0. Many thanks for all the contributions, feedback, and support from the community this year. You folks are awesome!
Thanks for reading!
EF Core 5.0.1
The first patch of EF Core 5.0 is available on NuGet now. This release builds on all the features shipped in EF Core 5.0 with 26 important bug fixes.
EF Core 5.0.0
New features in EF Core 5.0 include:
- Many-to-many relationships
- Map entity types to queries
- Event counters
- Property bags
- SaveChanges interception and events
- Exclude tables from migrations
- Required 1:1 dependents
- Options for migration generation
- Migrations scripts with transactions
- See pending migrations
- ModelBuilder API for value comparers
- EntityEntry TryGetValue methods
- Default max batch size for SQL Server
- Default environment to Development
- Better migrations column ordering
- Translation of is on Cosmos
- User-mapped functions can now be annotated to control null propagation
- Support for translation of GroupBy with conditional aggregates
- Translation of Distinct operator over group element before aggregate
- Model building for fields
- Table-per-type (TPT) mapping
- Migrations: Rebuild SQLite tables
- Table-valued functions
- Flexible query/update mapping
- Context-wide split-query configuration
- PhysicalAddress mapping
- Add FieldInfo overload for NavigationBuilder
- Query generation for GroupBy with OwnsOne
- Support join after GroupByAggregate
- Generate a warning for multiple collection Includes
- Convert multiple equality on same column joined by Or/Else into SQL IN expression
- Make discriminator properties read-only be default
- Add an IDbContextFactory that pools context instances
- Cosmos: Allow PK with just the partition key
- Register a factory for DbContext instances in D.I.
- Clear all tracked entities to reset DbContext state
- New pattern for store-generated defaults
- Better support for Cosmos partition keys
- New Cosmos configuration options
- Scaffold-DbContext now singularizes
- Support for database savepoints
- Split queries for Include and projection of collections
- IndexAttribute
- Improved query translation exceptions
- Application-specified transaction IDs
- IPAddress mapping
- Option to exclude OnConfiguring when scaffolding
- Translations for FirstOrDefault, etc. on strings
- Simplification of case blocks in generated SQL
- Database collations
- Flow arguments into IDesignTimeDbContextFactory
- No-tracking queries with identity resolution
- Stored (persisted) computed columns
- SQLite computed columns
- Configure database precision/scale in model
- Specify SQL Server index fill factor
- Filtered Include
- Command-line parameters for namespaces when scaffolding a DbContext or generating migrations
- Command-line support for passing a connection string to [dotnet ef database update]/[Update-Database]
- EnableDetailedErrors provides more information in query mapping exceptions
- Improved support for using Cosmos partition keys in queries
- New ModelBuilder API for navigation properties
- Support for the SQL Server DATALENGTH function
- Use a C# attribute to specify a property backing field
- Complete discriminator mapping
- Performance improvements in Microsoft.Data.Sqlite
- Simple Logging
- Simple way to get generated SQL
- Use a C# attribute to indicate that an entity has no key
- Connection or connection string can be changed on initialized DbContext
- Change-tracking proxies
- Enhanced debug views
- Improved handling of database null semantics
- Indexer properties
- Generation of check constraints for enum mappings
- IsRelational method for differential model building
- Cosmos optimistic concurrency with ETags
- Query translations for more DateTime constructs
- Query translations for more byte array constructs
- Query translation for Reverse
- Query translation for bitwise operators
- Query translation for strings on Cosmos
The .NET Blog announcement has installation instructions and full details.
EF Core 3.1.10
EF Core 3.1.10 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 welcome guest Frans Bouma, who showed us how to graphically model a domain for any .NET ORM with the LLBLGen Pro designer. Frans is also a venerable .NET data and SqlServer figure, so we also chatted a bit about history and what's it's been like to make a commercial ORM in the Microsoft world.
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.
Comment on GitHub with ideas for guests, demos, or anything else you want to see.
EF Core 6.0
We are close to sharing a plan for EF Core 6.0. More details soon...
Pull requests merged in the last few weeks
Community contributions
- @nmichels added Default Timeout connection string keyword
- (5.0.2) @CaringDev added quoting for FROM table identifier when rewriting
- @meggima fixed missing event source logging
- @KaloyanIT implemented EntityTypeConfiguration annotation
- @filipnavara fixed SqliteDataRecord.GetStream on attached databases
- @the-wazz updated Migration.cs for typos/spelling
- @josemiltonsampaio fixed spelling in whatsnew.md
- @natashanikolic fixed a typo in index.md
- @koenbeuk added extension EntityFrameworkCore.Triggered
- @dan-giddins added clarity to Entity Framework Core tools reference page
- @msawczyn updated Entity Framework Visual Editor to add EFCore 5
- @MaxG117 updated Teradata.EntityFrameworkCore to version 3.1
- @MSDN-WhiteKnight formatted identifiers as code
- @ErikEJ updated with support for EF Core 5
- @HSchwichtenberg fixed typo: pluarlizer->pluralizer
Many thanks to all our contributors!
EF Core
- Miscellaneous
- Remove EF Core 5.0 daily build feed
- Remove .rd.xml files
- Enable nullable reference types in auto-generated code
- Reenable/remove flaky tests
- Added testing for various negative cases
- Create GraphUpdatesTests for owned entities
- Remove delta flaky test/Fix build break
- Bump Microsoft.Azure.Cosmos from 3.15.0-preview to 3.15.0
- Bump Microsoft.Data.SqlClient from 2.1.0-preview2.20297.7 to 2.1.0
- Query
- Throw error for translating Lambda right away
- Add regression test for #21003
- Test: Implement entity sorters/asserts for Spatial test base
- (5.0.1) Don't terminate translation if indexer method does not bind to indexer property
- (5.0.1) Add null check in hash computation in SqlFunctionExpression
- InMemory: Add translation for object.Equals when object is null
- Annotate IsNiladic for nullability on Arguments
- Documentation
- Model building
- Cosmos
- Scaffolding
- Migrations
Microsoft.Data.Sqlite
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.1
- LTS: EF Core 3.1.10
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.