Entity Framework Weekly Status Updates (2019)
ajcvickers opened this issue · 30 comments
Weekly status updates for 2020 can be found at: #19549
Expand to see additional information from the end of 2019...
This discussion 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 but not yet shipped
- Issues fixed for EF Core 3.1.0
- 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.
April 18, 2019
Expand to see status from this week...
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We are preparing to merge the new pipeline in the next couple of weeks.
- Not everything will be working at that time, but merging will allow us to start gathering feedback.
- This will likely first ship in EF Core 3.0-preview6.
Tracking issue: #12795
Porting EF6 to .NET Core
What: Support EF6 on .NET Core.
Status:
- We plan to ship a runtime targeting .NET Standard 2.1 with .NET Core 3.0-preview5.
- Command line tooling (for Migrations) and support in the VS Designer is not yet ready to ship.
Tracking issue: dotnet/ef6#271
Provider model updates
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status:
- Most changes here have already been merged.
- Changes related to the query overhaul will be addressed after the merge of that work.
- Public API surface for conventions is being work on.
Tracking issue: #15405
Breaking changes
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status:
- Many of the planned breaking changed have now been merged
- Remaining planned breaking changes are mostly around the query overhaul and provider model updates
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status:
- Work is currently on hold while provider-model and breaking changes are being made
Tracking issue: #12086
Highlights from the last week
Some items of interest from the last week:
- We released EF Core 3.0 Preview 4! Read more details in our announcement blog post.
- We have updated the internal code API docs to better convey the dangers of using internal code without saying that it should never be used.
- The
dotnet-ef
command has been removed from the SDK and must be installed explicitly. This aligns with removing EF Core from the ASP.NET Core shared framework. - The
DeleteBehavior
enum has been updated to make it more consistent and understandable. - Documentation for the nightly builds has been updated to make them easier to find and use.
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 25, 2019
Expand to see status from this week...
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- Progress towards the merge of the new query code is on track for a preview6 release.
- Not everything will be working at that time, but merging will allow us to start gathering feedback.
- This will likely first ship in EF Core 3.0-preview6.
Tracking issue: #12795
Porting EF6 to .NET Core
What: Support EF6 on .NET Core.
Status:
- The EF6 runtime has been merged and branched ready for the .NET Core 3.0-preview5 release.
- For preview5, the ADO.NET provider will need to be registered manually in
DbProviderFactories
. Details will be in the blog post.
- For preview5, the ADO.NET provider will need to be registered manually in
- Command line tooling (for Migrations) and support in the VS Designer is not yet ready to ship.
Tracking issue: dotnet/ef6#271
Provider model updates
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status:
- More internal APIs have been promoted to public this week.
- Some of the types needed for public conventions are now merged; the remainder is being work on.
- Changes related to the query overhaul will be addressed after the merge of that work.
Tracking issue: #15405
Breaking changes
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status:
- Many of the planned breaking changes have now been merged
- Remaining planned breaking changes are mostly around the query overhaul and provider model updates
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status:
- Work is currently on hold while provider-model and breaking changes are being made
Tracking issue: #12086
Latest releases
Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
Latest preview: EF Core 3.0 Preview 4 - see our announcement blog post
Current: EF Core 2.2.4
LTS: EF Core 2.1.8
Highlights from the last week
Some items of interest from the last week:
- We were in a 2-day workshop with the ASP.NET team, reviewing the end to end experience of building and deplying an ASP.NET Core app using EF Core. It was a great opportuntity to identify possible improvements to the product and documentation.
- Accessing
DbSet.Local
now forcesDetectChanges
to be called - Several internal APIs, including
ICurrentDbContext
, are now public - Several updates to scaffolding from the community (Thanks @ErikEJ!):
- Fix to ignore unsupported sequences when scaffolding from an Azure database
- Fix to ignore hidden columns when scaffolding from an Azure database
- We have fixed a bug in preview4 that broke scaffolding from the command line
- The "specification" tests used by providers must now be derived from publicly
- New metadata interfaces have been introduced for public conventions
- Documentation for Attach has been updated to be clearer
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 2, 2019
Expand to see status from this week...
Highlights from the last week
Some items of interest from the last week:
- The EF team have been working on API reviews and preparation for the upcoming preview 5 releaase.
- The first part of the query overhaul has been merged.
- The internal
LazyRef
class has been removed. Consider usingSystem.Lazy
or other patterns instead. - Thanks to a community contribution from @ErikEJ, it is now possible to scaffold a DbContext from an Azure SQL Data Warehouse.
- @ErikEJ has also contributed PowerShell and .NET Core commands to generate a SQL script equivalent to calling
EnsureCreated()
. - A community contribution from @y-code fixes a bug to set the schema correctly for sequences.
- We missed a community contribution last week. @Muppets added support for relational check constraints in the model.
A big thank you to all our community contributors!
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- Progress towards the merge of the new query code is on track for a preview6 release. As noted above, the first part has now been merged to master.
- Not everything will be working at that time, but merging will allow us to start gathering feedback.
- This will likely first ship in EF Core 3.0-preview6.
Tracking issue: #12795
Porting EF6 to .NET Core
What: Support EF6 on .NET Core.
Status:
- Work continues porting tests to XUnit 2.
- The EF6 runtime has been merged and branched ready for the .NET Core 3.0-preview5 release.
- For preview5, the ADO.NET provider will need to be registered manually in
DbProviderFactories
. Details will be in the blog post.
- For preview5, the ADO.NET provider will need to be registered manually in
- Command line tooling (for Migrations) and support in the VS Designer is not yet ready to ship.
Tracking issue: dotnet/ef6#271
Provider model updates
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status: (No change from last week)
- More internal APIs have been promoted to public this week.
- Some of the types needed for public conventions are now merged; the remainder is being work on.
- Changes related to the query overhaul will be addressed after the merge of that work.
Tracking issue: #15405
Breaking changes
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- Many of the planned breaking changes have now been merged
- Remaining planned breaking changes are mostly around the query overhaul and provider model updates
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status: (No change from last week)
- Work is currently on hold while provider-model and breaking changes are being made
Tracking issue: #12086
Latest releases
Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
Latest preview: EF Core 3.0 Preview 4 - see our announcement blog post
Current: EF Core 2.2.4
LTS: EF Core 2.1.8
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 9, 2019
Expand to see status from this week...
Highlights from the last week
Some items of interest from the last week:
- We have released EF 6.3 in preview with .NET Core support. See the announcement for full details.
- The SQL Server team has released the new Microsoft.Data.SqlClient ADO.NET provider for SQL Server. See the announcement for full details. We have been working with them and we plan to adopt this new provider in an upcoming preview.
- We have merged support for using C# nullable reference types to determine whether a property or relationship is required or not.
- The main part of the query overhaul has now been merged. Several other pull requests have been merged to further enhance the new query code:
- We have made the parameter binding APIs public. This makes it possible to create custom proxies without using internal code.
- Community contributions:
- @ErikEJ fixed a bug where scaffolding would add an unexpected product version annotation.
- @ErikEJ added a partial method for
OnModelCreating
when scaffolding from an exiting database. - @ErikEJ added a Package Manager Console command for listing all the
DbContext
types in the project. - @ErikEJ added support for scaffolding entities without keys
- Building on this, @ErikEJ has added support for scaffolding from database views on SQL Server.
- @ErikEJ submitted a change to exclude system tables when considering whether or not a database is empty for the purposes of
EnsureCreated()
.
A big thank you to @ErikEJ for all his contributions this week!
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We have now merged the query overhaul into master ready for EF Core 3.0-preview6.
- At this time several important features are not fully working. This includes:
- Many queries involving collection navigation properties
- Lifting of sub-queries
- TPH inheritance mapping
- Queries involving owned types
- Queries use relational semantics for nulls (as opposed to C# semantics)
- Also, queries against the in-memory database and Cosmos are not working well. We are currently prioritizing the relational providers over the in-memory provider and Cosmos providers.
- We are working on fixing the most significant breaks ready for EF Core 3.0-preview6, although some breaks will still remain in that release.
Tracking issue: #12795
Porting EF6 to .NET Core
What: Support EF6 on .NET Core.
Status:
- The Entity Framework 6.3-preview5 package has been pushed to NuGet. See the announcement) for full details.
- Note that command line tooling (for Migrations) and support in the VS Designer is not yet ready to ship.
- Tests have been ported to XUnit 2. Work is now in progress to get them passing on .NET Core 3.0.
Tracking issue: dotnet/ef6#271
Provider model updates
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status:
- More internal APIs have been promoted to public this week. This includes public APIs needed for binding constructors and factory methods of entities as noted above.
- Some of the types needed for public conventions are now merged; the remainder is being work on.
- Changes related to the query overhaul will be addressed after the merge of that work.
Tracking issue: #15405
Breaking changes
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- Many of the planned breaking changes have now been merged
- Remaining planned breaking changes are mostly around the query overhaul and provider model updates
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status: (No change from last week)
- Work is currently on hold while provider-model and breaking changes are being made
Tracking issue: #12086
Latest releases
EF Core:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF Core 3.0 Preview 5 - see the .NET Core announcement post
- Current: EF Core 2.2.4
- LTS: EF Core 2.1.8
EF6:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 5 - see the announcement post
- Current: EF 6.2.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.
May 16, 2019
Expand to see status from this week...
Highlights from the last week
Some items of interest from the last week:
- Conventions that only validate and never change the model have been moved to the
ModelValidator
- Further progress has been made on the new query code:
- Lifting of sub-queries for single property projections has been merged
- We have fixed a concurrency issue in the query compiler
- We have made the following changes as part of the on-going review API changes for 3.0:
- Refactoring in
IModelCodeGenerator
and related interfaces to introduce a parameter object such that we can continue to add parameters without breaking the API or adding overloads - Various small name changes and corrections
- Refactoring in
- As part of adding public API surface for conventions we have:
- We have moved discriminator support from relational assembly to the core assembly. This allows it to be used for non-relational providers such as for Cosmos.
- We have started ramping up performance work for 3.0 by integrating with the ASP.NET performance framework and adding support for easily running EF micro-benchmarks
- We have simplified EF internal notifications used for fix-up, etc.
Community contributions:
- @ErikEJ has added support for scaffolding from database views on SQLite. This completes the work to enable scaffolding from database views.
- @Muppets submitted a PR to store check constraints on entity types, rather than on the model
- We finally merged a PR from @Muppets to use
nameof
syntax when scaffolding
A big thank you to @ErikEJ and @Muppets for their contributions this week!
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We have merged more progress on the new query pipeline--see Highlights above for details.
- At this time several important features are not fully working. This includes:
- Many queries involving collection navigation properties
- TPH inheritance mapping
- Queries involving owned types
- Queries use relational semantics for nulls (as opposed to C# semantics)
- We are currently working on:
- Collection navigation property support
FromSql
- C# null semantics
- Queries against the in-memory database and Cosmos are not working well. We are currently prioritizing the relational providers over the in-memory provider and Cosmos providers.
- We are working on fixing the most significant breaks ready for EF Core 3.0-preview6, although some breaks will still remain in that release.
Tracking issue: #12795
Porting EF6 to .NET Core
What: Support EF6 on .NET Core.
Status: (No change from last week)
- The Entity Framework 6.3-preview5 package has been pushed to NuGet. See the announcement) for full details.
- Note that command line tooling (for Migrations) and support in the VS Designer is not yet ready to ship.
- Tests have been ported to XUnit 2. Work is now in progress to get them passing on .NET Core 3.0.
Tracking issue: dotnet/ef6#271
Provider model updates
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status:
- More work to support public conventions has been merged--see Highlights above for details
- Changes related to the query overhaul will be addressed after the merge of that work.
Tracking issue: #15405
Breaking changes
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- Many of the planned breaking changes have now been merged
- Remaining planned breaking changes are mostly around the query overhaul and provider model updates
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status:
- Work is currently on hold while provider-model and breaking changes are being made
- That being said, we have merged some new metadata extensions for Cosmos as part of the public conventions work--see Highlights above for details
Tracking issue: #12086
Latest releases
EF Core:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF Core 3.0 Preview 5 - see the .NET Core announcement post
- Current: EF Core 2.2.4
- LTS: EF Core 2.1.8
EF6:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 5 - see the announcement post
- Current: EF 6.2.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.
May 23, 2019
Expand to see status from this week...
Highlights from the last week
Some items of interest from the last week:
- Further progress has been made on the new query code:
- Support for C# null semantics has been merged
- Various other fixes and cleanup to the query code have also been merged
- We have updated EF
Exception
classes to use best practices and fix issues with serialization - We are continuing with API reviews and other internal tasks
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We have merged more progress on the new query pipeline--see Highlights above for details.
- At this time several important features are not fully working. This includes:
- Many queries involving collection navigation properties
- TPH inheritance mapping
- Queries involving owned types
- We are currently working on:
- Include and collection navigation property support
FromSql
- SQL Server LongCount support
- Any/All expression rewriting
- Entity equality
- Queries against the in-memory database and Cosmos are not working well. We are currently prioritizing the relational providers over the in-memory provider and Cosmos providers.
- We are working on fixing the most significant breaks ready for EF Core 3.0-preview6, although some breaks will still remain in that release.
Tracking issue: #12795
Porting EF6 to .NET Core
What: Support EF6 on .NET Core.
Status: (No change from last week)
- The Entity Framework 6.3-preview5 package has been pushed to NuGet. See the announcement) for full details.
- Note that command line tooling (for Migrations) and support in the VS Designer is not yet ready to ship.
- Tests have been ported to XUnit 2. Work is now in progress to get them passing on .NET Core 3.0.
Tracking issue: dotnet/ef6#271
Provider model updates
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status: (No change from last week)
- Changes related to the query overhaul will be addressed after the merge of that work.
Tracking issue: #15405
Breaking changes
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- Many of the planned breaking changes have now been merged
- Remaining planned breaking changes are mostly around the query overhaul and provider model updates
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status: (No change from last week)
- Work is currently on hold while provider-model and breaking changes are being made
Tracking issue: #12086
Latest releases
EF Core:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF Core 3.0 Preview 5 - see the .NET Core announcement post
- Current: EF Core 2.2.4
- LTS: EF Core 2.1.8
EF6:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 5 - see the announcement post
- Current: EF 6.2.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.
May 30, 2019
Expand to see status from this week...
Highlights from the last week
Some items of interest from the last week:
- Further progress has been made on the new query code:
- Support for reference Include has been merged
- Basic FromSql is now working
- Support for inheritance (TPH) mapping at the relational level
- More fixes for C# null semantics
- Support for All/Any translations
- Improved access to EF.Property
- Fixed exception interception as used by the Database Error Page
- Several more smaller bug fixes
- EF Core now depends on the new Microsoft.Data.SqlClient package
- The interfaces used for custom conventions have been refactored and made public
- We are continuing with API reviews and other internal tasks
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We have merged more progress on the new query pipeline--see Highlights above for details.
- At this time several important features are not fully working. This includes:
- Many queries involving collection navigation properties
- Queries involving owned types
- We are currently working on:
- Include and collection navigation property support
- Parameterized
FromSql
- Entity equality
- Queries against the in-memory database and Cosmos are not working well. We are currently prioritizing the relational providers over the in-memory provider and Cosmos providers.
- We are working on fixing the most significant breaks ready for EF Core 3.0-preview6, although some breaks will still remain in that release.
Tracking issue: #12795
Porting EF6 to .NET Core
What: Support EF6 on .NET Core.
Status: (No change from last week)
- The Entity Framework 6.3-preview5 package has been pushed to NuGet. See the announcement) for full details.
- Note that command line tooling (for Migrations) and support in the VS Designer is not yet ready to ship.
- Tests have been ported to XUnit 2. Work is now in progress to get them passing on .NET Core 3.0.
Tracking issue: dotnet/ef6#271
Provider model updates
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status: (No change from last week)
- Changes related to the query overhaul will be addressed after the merge of that work.
Tracking issue: #15405
Breaking changes
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- Many of the planned breaking changes have now been merged
- Remaining planned breaking changes are mostly around the query overhaul and provider model updates
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status:
- Work is currently on hold while provider-model and breaking changes are being made
- Note that the Cosmos provider has not yet been updated to use the new query code and so currently does not work
Tracking issue: #12086
Latest releases
EF Core:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF Core 3.0 Preview 5 - see the .NET Core announcement post
- Current: EF Core 2.2.4
- LTS: EF Core 2.1.8
EF6:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 5 - see the announcement post
- Current: EF 6.2.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.
June 6, 2019
Expand to see status from this week...
Highlights from the last week
Some items of interest from the last week:
- We have now branched for EF Core 3.0-preview6! Expect to see it soon...
- For preview7, as previously announced, EF Core now targets .NET Standard 2.1
- As part of this work we have removed our dependency on the IX-Async package
- More of the code for conventions (for database providers) has now been made public
- Also, these classes now have API docs
- Further progress has been made on the new query code:
Include
for collections is now supported for common cases- Equality comparisons between entity instances are now translated
FromSql
now supports raw queries that use parameters and stored-procs- Note that the
FromSql
methods are now defined only forDbSet<>
and not for anyIQueryable
since they can only act as a query root SingleOrDefault
at the top-level of a query now throws correctly- Query access to properties on derived types
- The old query pipeline has now been removed from the master branch
- Several more smaller bug fixes: 15967 15954 15951 15942 15927 15885 15882 15880 15966
- EF6 now targets LocalDb by default, instead of SQL Express
- The MSBuild task to embed an EDMX has been made open-source and .NET Core ready
- Minor bug fix for Microsoft.Data.Sqlite
- We are continuing with API reviews and other internal tasks
Community contributions:
- @Muppets contributed a
ValueConverter
forstring
`URI` conversions - @Muppets contributed
TimeSpan
overloads for SQL ServerDateDiff
translations
A big thank you to @Muppets for all their contributions this week!
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We have merged more progress on the new query pipeline--see Highlights above for details.
- At this time several important features are not fully working. This includes:
- Queries involving owned types
- We are currently working on:
- Lots of work on re-enabling functionality in smaller areas
- Queries against the in-memory database and Cosmos are not working well. We are currently prioritizing the relational providers over the in-memory provider and Cosmos providers.
- We are working on fixing the most significant breaks ready for EF Core 3.0-preview6, although some breaks will still remain in that release.
Tracking issue: #12795
Porting EF6 to .NET Core
What: Support EF6 on .NET Core.
Status:
- Tests now run against .NET Core 3.0
- Work is starting to get the command line tooling for Migrations working in .NET Core
- Support in the VS Designer is not yet ready to ship.
Tracking issue: dotnet/ef6#271
Provider model updates
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status: (No change from last week)
- Changes related to the query overhaul will be addressed after the merge of that work.
Tracking issue: #15405
Breaking changes
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- Many of the planned breaking changes have now been merged
- Remaining planned breaking changes are mostly around the query overhaul and provider model updates
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status: (No change from last week)
- Work is currently on hold while provider-model and breaking changes are being made
- Note that the Cosmos provider has not yet been updated to use the new query code and so currently does not work
Tracking issue: #12086
Latest releases
EF Core:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF Core 3.0 Preview 5 - see the .NET Core announcement post
- Current: EF Core 2.2.4
- LTS: EF Core 2.1.8
EF6:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 5 - see the announcement post
- Current: EF 6.2.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.
June 13, 2019
Expand to see status from this week...
EF Core 3.0 Preview 6 has shipped!
See the announcement blog post for full details.
In recent months, a lot of our efforts have been focused on a new LINQ implementation for EF Core 3.0. Although the work isn't complete and a lot of the intended functionality hasn't been enabled, before preview 6 we reached a point in which we couldn't make much more progress without integrating the new implementation into the codebase in the main branch.
IMPORTANT: Although as always, we want to encourage you to experiment with our preview bits in a controlled environment and to provide feedback, preview 6 has significant limitations in the LINQ implementation that we expect to affect any application that performs all but the most trivial queries. Given this, we want to explicitly recommend you against trying to update any applications you have in production to this preview.
Temporary limitation: In-memory database and Cosmos DB providers aren't functional in this preview: In the initial phase of the switch to the new implementation, we have prioritized getting our relational providers working. Functionality with in-memory database and Cosmos DB providers is broken, and we recommend you skip preview 6 if you have code that depends on these providers. We expect to gradually restore functionality in subsequent previews.
Other highlights from the last week
Some items of interest from the last week:
- EF 6.3-preview6 has shipped!
- Further progress has been made on the new query code:
- Entity equality (comparing two entity instances) is now implemented.
- Extension methods on
IAsyncEnumerable
for the old query pipeline have been removed - TPH translations no longer pull in extra columns
AsAsyncEnumerable
has been introduced- A performance issue where the connection was being opened twice has been fixed
- Several more smaller bug fixes: 16029 16027 16020 16028 15968 15976 15963
IRelationalDatabaseCreator.HasTables
is now public for use in custom Migrations flows- Core and relational logic that was in
ModelCustomizer
has now been moved to conventions - A memory leak of
DiagnosticListener
instances caused by usingIsConfigured
has been fixed - An issue where application types were used when building the Migrations history table has been fixed
- We have reengaged working on the Cosmos provider. This includes:
- Updating to the lastest SDK
- Making
CosmosClient
a singleton to improve perf
- The core metadata
AddProperty
methods have been consolidated to better align with new property types - .NET Core fixed an issue and we fixed an issue to unblock more EF6 queries
SqlServerValueGenerationStrategy.None
has been added so that all options can be explicitly specified- Code locations for extension methods have been cleaned up
- Even though
DbQuery
is obsoleted for 3.0, we have aligned the no-tracking behavior to that of 2.2 - The
ConditionalFact
andConditionalTheory
xUnit infrastructure has been re-worked to be more test-discovery friendly - We are continuing with API reviews and other internal tasks
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We have merged more progress on the new query pipeline--see Highlights above for details.
- At this time several important features are not fully working. This includes:
- Owned types
- Collections reference on projections
- GroupBy operator
- Query tags
- Global query filters
- Queries against the in-memory database and Cosmos are generally not working--see the note at the top of this post
Tracking issue: #12795
Porting EF6 to .NET Core
What: Support EF6 on .NET Core.
Status:
- Work is continuing to get the command line tooling for Migrations working in .NET Core
- Support in the VS Designer is not yet ready to ship.
Tracking issue: dotnet/ef6#271
Provider model updates
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status: (No change from last week)
- Changes related to the query overhaul will be addressed after the merge of that work.
Tracking issue: #15405
Breaking changes
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- Many of the planned breaking changes have now been merged
- Remaining planned breaking changes are mostly around the query overhaul and provider model updates
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status:
- We have just re-enaged this work; look for updates in the coming weeks.
- Queries against the in-memory database and Cosmos are generally not working--see the note at the top of this post
Tracking issue: #12086
Latest releases
EF Core:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF Core 3.0 Preview 6 - see the .NET Core announcement post
- Current: EF Core 2.2.4
- LTS: EF Core 2.1.11
EF6:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 6 - see the announcement post
- Current: EF 6.2.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.
June 20, 2019
Expand to see status from this week...
EF Core
EF Core 3.0 Preview 6
See the announcement blog post for important details about this preview.
IMPORTANT: Although as always, we want to encourage you to experiment with our preview bits in a controlled environment and to provide feedback, preview 6 has significant limitations in the LINQ implementation that we expect to affect any application that performs all but the most trivial queries. Given this, we want to explicitly recommend you against trying to update any applications you have in production to this preview.
Highlights from the last week
Some items of interest from the last week:
- We are patching EF Core 2.2 to fix the memory leak of
DiagnosticListener
instances caused by usingIsConfigured
- We have reverted the change to the default log level for SQL
IDbCommandInterceptor
for interception ofDbCommand
execution has been introduced- Further progress has been made on the new query code:
- We have begun the work of updating the Cosmos provider to use the new pipeline
- Entity equality can now be used in
Contains
andOrderBy
- Logging of the query execution plan is enabled
- Generation of standard SQL has been improved
- Many bugs in SQL generation have been fixed
- Several more smaller bug fixes: 16052 16085 16131
- The Cosmos provider can now use configured partition keys
- Most hash code calculations were updated to use the BCL
HashCode
types - A bug was fixed in
Microsoft.Data.SQLite
to improve handling of readers in non-queries - A helper method
IsCosmos
to check if Cosmos is being used has been added - The discriminator property can now be removed when using Cosmos with a type not in a hierarchy
- The
DbContextOptionsExtension
class has been re-factored to fix a perf issue and to better facilitate further evolution - The
CosmosModelCustomizer
is now running as a convention to align it with the relational design
Community contributions:
- @Muppets contributed support for generating table/column comments from Migrations
A big thank you to @Muppets for their contribution this week!
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We have merged more progress on the new query pipeline--see Highlights above for details.
- At this time several important features are not fully working. This includes:
- Owned types
- Collections reference on projections
- GroupBy operator
- Query tags
- Global query filters
- Queries against the in-memory database and Cosmos are generally not working--see the preview 6 blog post for details
Tracking issue: #12795
Porting EF6 to .NET Core
What: Support EF6 on .NET Core.
Status: (No change from last week)
- Work is continuing to get the command line tooling for Migrations working in .NET Core
- Support in the VS Designer is not yet ready to ship.
Tracking issue: dotnet/ef6#271
Provider model updates
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status: (No change from last week)
- Changes related to the query overhaul will be addressed after the merge of that work.
Tracking issue: #15405
Breaking changes
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- Many of the planned breaking changes have now been merged
- Remaining planned breaking changes are mostly around the query overhaul and provider model updates
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status:
- We are making progress again--see the highlights section for the work completed this week
- We have now merged preliminary support for queries in Cosmos
Tracking issue: #12086
Latest releases
EF Core:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF Core 3.0 Preview 6 - see the .NET Core announcement post
- Current: EF Core 2.2.4
- LTS: EF Core 2.1.11
EF6:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 6 - see the announcement post
- Current: EF 6.2.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.
June 27, 2019
Expand to see status from this week...
EF Core
EF Core 3.0 Preview 6
See the announcement blog post for important details about this preview.
IMPORTANT: Although as always, we want to encourage you to experiment with our preview bits in a controlled environment and to provide feedback, preview 6 has significant limitations in the LINQ implementation that we expect to affect any application that performs all but the most trivial queries. Given this, we want to explicitly recommend you against trying to update any applications you have in production to this preview.
Highlights from the last week
Some items of interest from the last week:
- Further progress has been made on the new query code:
- Initial support for translating query set operations (Union/Intersect/etc.)
- Support for collection materialization in async queries
- Improved support for string-based
Include
and inheritance - Micro-benchmarks for query have been re-enabled
- Better support for function quoting logic across providers
- Several smaller fixes and test improvements: 16168 16181 16167 16184 16208 16222
- We have updated
Microsoft.Data.Sqlite
(and hence EF also) to the new SQLitePCL.raw 2.0.0 package- Bonus: EF query tests found a new regression in the SQLite engine
- Database interception has been fleshed out:
- The API now supports common registration and multi-dispatch
IDbConnectionInterceptor
andIDbTransactionInterceptor
have been addedIDbCommandInterceptor
now includes interception for execution errors- The
DbContext
instance being used is now available from interception and diagnostics event data
- We have updated to a new Cosmos SDK
- Since type mappings are now required in the finalized model, we made this explicit with GetTypeMapping and GetRelationalTypeMapping methods
IConventionSetCustomizer
has been renamed toIConventionSetPlugin
to align with other similar plugin APIs- We fixed a visual bug in the EF6 Designer that manifested in some multi-screen setups. This is expected to ship with Visual Studio 16.2 Preview 4.
Community contributions
Community contributions to EF Core:
- @pmiddleton contributed support for parameter mapping in a
DbFunction
Community contributions to Microsoft.Data.Sqlite
:
- @AlexanderTaeschner contributed an improvement to
GetFieldType
when null
Community contributions to EF6:
- @kosinsky contributed performance improvements in the use of custom functions
- @cjpearson contributed performance improvements in query compilation
- @phkelley and @chrisblock contributed a fix for using
HasIndex
with multiple indexes
A big thank you to all our great contributors for their contributions this week!
Also, a big call-out to @ericsink for all his great work and collaboration on the SQLitePCL.raw 2.0.0 mentioned above.
Issues remaining for 3.0
This is the burn-down chart we use internally to track progress towards EF Core 3.0. Some observations:
- It's fairly clear from this chart that we will need to cut some more issues from the 3.0 release. However, keep in mind that many of the remaining issues are small compared to the issues that are already fixed.
- The gray bar at the top represents all the issues already fixed for 3.0
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We have merged more progress on the new query pipeline--see Highlights above for details.
- At this time several important features are not fully working. This includes:
- Owned types
- Collections referenced on projections
- GroupBy operator
- Query tags
- Global query filters
- Queries against the in-memory database and Cosmos are generally not working--see the preview 6 blog post for details
Tracking issue: #12795
Porting EF6 to .NET Core
What: Support EF6 on .NET Core.
Status: (No change from last week)
- Work is continuing to get the command line tooling for Migrations working in .NET Core
- Support in the VS Designer is not yet ready to ship.
Tracking issue: dotnet/ef6#271
Provider model updates
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status: (No change from last week)
- Changes related to the query overhaul will be addressed after the merge of that work.
Tracking issue: #15405
Breaking changes
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- Many of the planned breaking changes have now been merged
- Remaining planned breaking changes are mostly around the query overhaul and provider model updates
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status:
- We are making progress again--see the highlights section for the work completed this week
- We have now merged preliminary support for queries in Cosmos
Tracking issue: #12086
Latest releases
EF Core:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF Core 3.0 Preview 6 - see the .NET Core announcement post
- Current: EF Core 2.2.4
- LTS: EF Core 2.1.11
EF6:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 6 - see the announcement post
- Current: EF 6.2.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.
July 5, 2019
Expand to see status from this week...
EF Core
EF Core 3.0 Preview 6
See the announcement blog post for important details about this preview.
IMPORTANT: Although as always, we want to encourage you to experiment with our preview bits in a controlled environment and to provide feedback, preview 6 has significant limitations in the LINQ implementation that we expect to affect any application that performs all but the most trivial queries. Given this, we want to explicitly recommend you against trying to update any applications you have in production to this preview.
Highlights from the last week
Some items of interest from the last week:
- We have branched for EF Core 3.0 preview 7. Expect to see the blog post and release soon...
- We have updated spatial support to use the latest NetTopologySuite pre-release package
- Further progress has been made on the new query code:
- Support for translation to SQL
GROUP BY
has been added - Translation of
GroupBy
when an aggregate operator is applied is now supported TagWith
is now supported- Support for navigation in set operations has been added
- Improved support for collections in projections
- Wrap-up of support for materialization of collections
- Support for
IN
optimization when ordering has been added - Several smaller fixes and test improvements: 16302 16299 16249 16269 16338 16266 16345 16344 16347 16351 16361 16362 16366 16363 16399 16433 16437
- Support for translation to SQL
- Further progress has been made on the Cosmos provider:
- References to nested owned entities are now supported in the new query code
- Nested navigation properties are now supported in filters
- Several improvements for testing: 16410 16404
- EF Core now implements and calls the new
IAsyncDisposable
API where appropriate - EF Core now calls into the new async APIs introduced for ADO.NET in .NET Standard 2.1
DbContext
now includes a correlation ID to help identify the context instance being used- Seeding of an in-memory database now leaves the context in a clean state
- We have fixed some bugs in database interception: 16337 16348
- We reacted to a change made by Roslyn to nullable reference types metadata
- New
CloseAsync
APIs now no longer accept a cancellation token - The exception text when the context is used concurrently from multiple threads has been made clearer
- Indexed properties has been cut from the 3.0 release
- Perf infrastructure is being updated to allow comparisons to 2.2 perf
- EF6 package installation/configuration has been updated to work with .NET Core: 952 953 954
- More updates have been applied based on API review feedback: 16303 16357
Community contributions
Community contributions to EF Core:
- @nschonni contributed fixes for many spelling errors and typos
Community contributions to EF6:
- @nschonni also contributed fixes to EF6 for many spelling errors and typos: 957 959 977
- @trs79 and @stowellt contributed an improvement to custom aggregate functions with more than one argument
- @brandondahler contributed an improvement to the
TruncateTime
canonical function performance
A big thank you to all our great contributors for their contributions this week!
Also, a big call-out to all the folks from the NTS project including @airbreather and @FObermaier for all their great work and collaboration on NetTopologySuite 2.0 preview release mentioned above.
Issues remaining for 3.0
This is the burn-down chart we use internally to track progress towards EF Core 3.0. Some observations:
- EF Core 3.0 is coming in hot; last week we postponed all issues that we did not absolutely need in order to ship the 3.0 release. Most of these were very painful cuts, but this was necessary to stay on track for shipping.
- The gray bar at the top represents all the issues already fixed for 3.0
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We have merged more progress on the new query pipeline--see Highlights above for details.
- At this time several important features are not fully working. This includes:
- Owned types
- Global query filters
- Queries against the in-memory database are generally not working--see the preview 6 blog post for details
Tracking issue: #12795
Porting EF6 to .NET Core
What: Support EF6 on .NET Core.
Status:
- Work is continuing to get the command line tooling for Migrations working in .NET Core
- Updates to the package install experience for .NET Core and the new project system have been made
- Support in the VS Designer is not yet ready to ship.
Tracking issue: dotnet/ef6#271
Provider model updates
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status: (No change from last week)
- Changes related to the query overhaul will be addressed after the merge of that work.
Tracking issue: #15405
Breaking changes
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- Many of the planned breaking changes have now been merged
- Remaining planned breaking changes are mostly around the query overhaul and provider model updates
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status:
- We are making progress again--see the highlights section for the work completed this week
- More Cosmos query support has now been added
Tracking issue: #12086
Latest releases
EF Core:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF Core 3.0 Preview 6 - see the .NET Core announcement post
- Current: EF Core 2.2.4
- LTS: EF Core 2.1.11
EF6:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 6 - see the announcement post
- Current: EF 6.2.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.
July 11, 2019
Expand to see status from this week...
EF Core
EF Core 3.0 Preview 6
See the announcement blog post for important details about this preview.
IMPORTANT: Although as always, we want to encourage you to experiment with our preview bits in a controlled environment and to provide feedback, preview 6 has significant limitations in the LINQ implementation that we expect to affect any application that performs all but the most trivial queries. Given this, we want to explicitly recommend you against trying to update any applications you have in production to this preview.
Highlights from the last week
Some items of interest from the last week:
- We are completing validation and preparation for EF Core 3.0 preview 7. Expect to see the blog post and release soon...
- We have shipped the EF Core 2.2.6 servicing release
- This release includes an important fix for a memory leak when using DiagnosticListener
- We have updated to a new pre-release of Microsoft.Data.SqlClient
- Which unblocks calling spatial methods on parameterized values
- We have updated to a new pre-release of the Cosmos API
- Further progress has been made on the new query code:
- Better support for eager-loaded navigation properties
- Support for parameter and constant member access in entity equality
- Support for order-by lifting in collection queries
- Improved provider support for type mappings in queries
- Different collection types are now better handled to help ensure reference equality is used internally
- Database type names are now stored in the model snapshot, helping make migrations more robust
- Providers now have more flexibility in constructing database type names
- EF Core no longer attempts to find a constructor binding if one has been explicitly set
Community contributions
A special call-out this week to @Wraith2 who contributed a feature to Microsoft.Data.SqlClient that unblocked important spatial scenarios for EF Core. Many thanks!
Issues remaining for 3.0
This is the burn-down chart we use internally to track progress towards EF Core 3.0. Some observations:
- Burn-down is on-track for shipping after the recent painful cuts
- The gray bar at the top represents all the issues already fixed for 3.0
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We have merged more progress on the new query pipeline--see Highlights above for details.
- At this time several important features are not fully working. This includes:
- Owned types
- Global query filters
- Queries against the in-memory provider
- Explicitly compiled queries
Tracking issue: #12795
Porting EF6 to .NET Core
What: Support EF6 on .NET Core.
Status: (No change from last week)
- Work is continuing to get the command line tooling for Migrations working in .NET Core
- Updates to the package install experience for .NET Core and the new project system have been made
- Support in the VS Designer is not yet ready to ship.
Tracking issue: dotnet/ef6#271
Provider model updates
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status: (No change from last week)
- Changes related to the query overhaul will be addressed after the merge of that work.
Tracking issue: #15405
Breaking changes
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- Many of the planned breaking changes have now been merged
- Remaining planned breaking changes are mostly around the query overhaul and provider model updates
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status:
- We are making progress again, this week focusing on some big changes to support more queries
Tracking issue: #12086
Latest releases
EF Core:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF Core 3.0 Preview 6 - see the .NET Core announcement post
- Current: EF Core 2.2.6
- LTS: EF Core 2.1.11
EF6:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 6 - see the announcement post
- Current: EF 6.2.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.
July 18, 2019
Expand to see status from this week...
EF Core
EF Core 3.0 Preview 6
See the announcement blog post for important details about this preview.
IMPORTANT: Although as always, we want to encourage you to experiment with our preview bits in a controlled environment and to provide feedback, preview 6 has significant limitations in the LINQ implementation that we expect to affect any application that performs all but the most trivial queries. Given this, we want to explicitly recommend you against trying to update any applications you have in production to this preview.
Highlights from the last week
Some items of interest from the last week:
- EF Core 3.0 preview 7 is validated and prepped. Expect to see the blog post and release soon...
- EF6 Migrations infrastructure has been moved out-of-proc from Visual Studio
- This allows EF6 Migrations commands in the VS Package Manager Console to work with .NET Core projects!
- A lot of time this week has been spent on our final pass of API reviews
- Further progress has been made on the new EF Core query code:
- Owned references are now working with the new query code
- The in-memory database is being updated to use the new query code
- Recursive null check removal is implemented
- An issue has been fixed for translation of lambda expressions wth parameters
- We updated test coverage in several areas:
- We added more coverage for the ASP.NET MusicStore model and queries
- We added coverage for the ASP.NET Identity model and its migrations
- We added coverage for the .NET app workshop Conference Planner model and queries
- We re-enabled more query tests
- Other smaller test additions: 16607 16624
- A fix has been merged to stop silently using existing tracked entities when attaching a conflicting graph
- EF Core now uses both the field and property types when creating a navigation collection
Community contributions
Community contributions to EF Core:
A big thank you to @ralmsdeveloper for their contribution this week!
Issues remaining for 3.0
This is the burn-down chart we use internally to track progress towards EF Core 3.0. Some observations:
- Burn-down slowed slightly this week due to API reviews and other internal work
- The gray bar at the top represents all the issues already fixed for 3.0
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We have merged more progress on the new query pipeline--see Highlights above for details.
- At this time several important features are not fully working. This includes:
- Owned types - owned references now work; owned collections coming soon
- Global query filters
- Queries against the in-memory provider is currently in progress
- Explicitly compiled queries - this should be complete in the coming days
Tracking issue: #12795
Porting EF6 to .NET Core
What: Support EF6 on .NET Core.
Status:
- Migrations commands are now working for .NET Core projects in the Visual Studio Package Manager Console!
- Support in the VS Designer will now ship sometime after the runtime release
Tracking issue: dotnet/ef6#271
Provider model updates
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status: (No change from last week)
- Changes related to the query overhaul will be addressed after the merge of that work.
Tracking issue: #15405
Breaking changes
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- Many of the planned breaking changes have now been merged
- Remaining planned breaking changes are mostly around the query overhaul and provider model updates
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status:
- Good progress is being made on queries for owned entities
Tracking issue: #12086
Latest releases
EF Core:
- Nightly builds: install the latest preview SDK, then follow the instructions from the wiki
- Latest preview: EF Core 3.0 Preview 6 - see the .NET Core announcement post
- Current: EF Core 2.2.6
- LTS: EF Core 2.1.11
EF6:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 6 - see the announcement post
- Current: EF 6.2.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.
July 25, 2019
Expand to see status from this week...
EF Core 3.0 Preview 7 and EF6.3 Preview 7 have shipped!
See the announcement blog post for full details.
We encourage you to install these previews to try the new features, and to validate that all the functionality required by your applications is available and works correctly. As always, we hope you’ll report any issues you find on GitHub.
Nightly builds
The state of EF Core 3.0 is evolving rapidly--at the time of writing, 45 issues have been fixed since we branched for preview 7. Therefore, we recommend switching to nightly builds if you are running into issues with preview 7.
Highlights from the last week
Some items of interest from the last week:
- We have been focussing heavily on API reviews to lock down the API surface for preview 8. Specifically:
- A big refactoring of the new query code to finalize namespaces and the public/internal surface
- Changes to
InterceptionResult
for usability - Consolidation of overloads in
MigrationsSqlGenerator
- Naming consistency in interceptors, null propagation, and function mapping
- Naming consistency for related entity types
- Cosmos naming and namespace consistency
- Consistent use of
IReadOnlyList
and other naming consistency changes
- Further progress has been made on the new EF Core query code:
- Explicitly compiled queries are now supported
- Better support for integer/enum conversions
- Internal query updates for case expressions
- Some test fixes: 16693 16640 16700
IDbCommandInterceptor
now supports interception of command creation- The Cosmos provider now supports embedded collections
- Updated testing for ASP.NET Identity model snapshots
- A bug has been fixed in expression printing of
InExpression
Community contributions
Community contributions to EF Core:
In his role as one of the maintainers of the Npgsql database provider, @roji has updated the provider to work with preview 7 of EF Core.
This week, @ErikEJ contributed:
- Reverse engineering support for database table and column comments
- A change to always reverse engineer
[Key]
attributes, even when not needed for EF - A fix to exclude reverse engineering of indexes for hidden columns
A big thank you to @ErikEJ for all his contributions this week and over the years!
Issues remaining for 3.0
This is the burn-down chart we use internally to track progress towards EF Core 3.0. Some observations:
- Burn-down is picking up again now API reviews have finished
- The gray bar at the top represents all the issues already fixed for 3.0
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We have merged more progress on the new query pipeline--see Highlights above for details.
- At this time several important features are not fully working, but are coming soon. This includes:
- Owned collections
- Global query filters
- Better support for queries against the in-memory provider
Tracking issue: #12795
Porting EF6 to .NET Core (Done)
What: Support EF6 on .NET Core.
Status:
- Major feature work for the EF6.3 release is now complete.
- We are eliciting feedback on the usefulness of creating a
dotnet-ef6
tool.
- We are eliciting feedback on the usefulness of creating a
- Support in the VS Designer will now ship sometime after the runtime release
Tracking issue: dotnet/ef6#271
Provider model updates (Done)
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status:
- API reviews have been completed and the surface area for providers is now locked down. There may still be some small tweaks before release based on feedback from external providers.
Tracking issue: #15405
Breaking changes (Done)
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- We have now completed all the significant breaking changes we plan to make for the 3.0 release. There may still be some small tweaks before release based on feedback.
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status:
- As referenced above, collections embedded in documents are now supported
Tracking issue: #12086
Latest releases
EF Core:
- Nightly builds: install the latest preview SDK, then follow the instructions from the wiki
- Latest preview: EF Core 3.0 Preview 7 - see the .NET Core announcement post
- Current: EF Core 2.2.6
- LTS: EF Core 2.1.11
EF6:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 7 - see the announcement post
- Current: EF 6.2.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.
August 1, 2019
Expand to see status from this week...
EF Core 3.0 Preview 7 and EF6.3 Preview 7 have shipped!
See the announcement blog post for full details.
We encourage you to install these previews to try the new features, and to validate that all the functionality required by your applications is available and works correctly. As always, we hope you’ll report any issues you find on GitHub.
Nightly builds
The state of EF Core 3.0 is evolving rapidly--at the time of writing, 75 issues have been fixed since we branched for preview 7. Therefore, we recommend switching to nightly builds if you are running into issues with preview 7.
Highlights from the last week
EF Core pull requests from the last week:
- EF Core 3.0 query overhaul:
- Set operations over different types of projections
- Entity-equality support for non-anonymous DTOs
- Bug fixed in using navigation properties in derived types
- Bug fixed using
Find
with the in-memory database - Choose to use the field or property as appropriate when materializing
- Bug fixed to ignore Convert nodes from nullable to non-nullable
- Cleanup in
RelationalSqlTranslatingExpressionVisitor
- Cosmos provider:
- Update to the RTM/GA Cosmos SDK
- Avoid persisting keys for embedded entities
- Handle projected collections
- Bug fixed when
NotMapped
is overridden by explicit configuration
- API review mop-up:
- Obsoleting/renaming of provider-specific builder methods
- Renaming of provider-specific core metadata extensions
- Dependency objects for query services
- Make public types required by the Cosmos provider
- Change
IResettableService.ResetStateAsync
to returnTask
notValueTask
- Expose
IndentedStringBuilder
APIs onExpressionPrinter
SqlExpressionVisitorDependency -> QuerySqlGeneratorDependencies
SpatialDimension -> GeometricDimension
- Move
RelationalStrings.NoElements
to Core - Make
EvaluableExpressionFilter
public
- Bug fixed when using
Remove-Migration
ordotnet ef migrations remove
- Bug fixed with SQLite type affinity and value conversions
- Bug fixed with non-nullable reference type handling
- Bug fixed in
DateTime
literal generation - Cleanup/fixes for comments on database objects
- Bug fixed in model differ when column comment changes
- Bug fixed applying column comments when creating tables
- Cleanup of PowerShell assets
- Cleanup of migration tests SQL assertions
- Enhancement to start using
StringBuilder.AppendJoin
- Bug fixed when generating content for PowerShell module development
- Build cleanup
- Reorganization of benchmarks
- Tests for auto-loaded owned references
EF6 pull requests from the last week:
- EF6 can now be built (as well as run) on macOS and Linux
- EDMX files are now automatically included in SDK-style projects
- Bug fixed with
InternalsVisibleTo
andMoq
- Bug fixed to correctly flow version into the PowerShell files
- Build cleanup
Issues remaining for 3.0
This is the burn-down chart we use internally to track progress towards EF Core 3.0. Some observations:
- The gray bar at the top represents all the issues already fixed for 3.0
- Current counts and trends:
- Open for 3.0: 72
- Burn rate (July): 23/week (trending up)
- Incoming that land in 3.0: (July): 10/week (flat)
Some additional stats
The team prepared some additional statistics for a management review this week. We are sharing them here in case others are interested.
There were 220 issues opened against EF Core in July. This chart shows the breakdown of how those issues were resolved:
We have fixed a total of 249 issues in preview 6, 7, 8, and so far for preview 9. 72 issues remain to be fixed in the 3.0 release.
TechEmpower perf update
We switched perf infrastructure over to use the latest Npgsql provider and the new query pipeline. We haven't done performance optimization work yet, so it it pleasing to see no regressions for EF Core in "Fortunes" and "Data Updates", and only small regressions in "Single Query" and "Multi Query".
NuGet Trends
We have been enjoying playing with the NuGet Trends site; here are a couple of interesting comparisons. Clearly EF Core is trending in the right direction, and it's great to see Dapper continuing to do well, and nHibernate continuing to be a great solution for those that prefer it.
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We have merged more progress on the new query pipeline--see Highlights above for details.
- At this time several important features are not fully working, but are coming soon. This includes:
- Owned collections
- Global query filters
- Better support for queries against the in-memory provider
Tracking issue: #12795
Porting EF6 to .NET Core (Done)
What: Support EF6 on .NET Core.
Status: (No change from last week)
- Major feature work for the EF6.3 release is now complete.
- We are eliciting feedback on the usefulness of creating a
dotnet-ef6
tool.
- We are eliciting feedback on the usefulness of creating a
- Support in the VS Designer will now ship sometime after the runtime release
Tracking issue: dotnet/ef6#271
Provider model updates (Done)
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status: (No change from last week)
- API reviews have been completed and the surface area for providers is now locked down. There may still be some small tweaks before release based on feedback from external providers.
Tracking issue: #15405
Breaking changes (Done)
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- We have now completed all the significant breaking changes we plan to make for the 3.0 release. There may still be some small tweaks before release based on feedback.
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status:
- Work is moving along nicely for an RTM release with 3.0--see highlights section above for details.
Tracking issue: #12086
Latest releases
EF Core:
- Nightly builds: install the latest preview SDK, then follow the instructions from the wiki
- Latest preview: EF Core 3.0 Preview 7 - see the .NET Core announcement post
- Current: EF Core 2.2.6
- LTS: EF Core 2.1.11
EF6:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 7 - see the announcement post
- Current: EF 6.2.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.
August 8, 2019
Expand to see status from this week...
EF Core 3.0 Preview 7 and EF6.3 Preview 7 are on NuGet
See the announcement blog post for full details.
We encourage you to install these previews to try the new features, and to validate that all the functionality required by your applications is available and works correctly. As always, we hope you’ll report any issues you find on GitHub.
Nightly builds
The state of EF Core 3.0 is evolving rapidly--at the time of writing, 107 issues have been fixed since we branched for preview 7. Therefore, we recommend switching to nightly builds if you are running into issues with preview 7.
Highlights from the last week
EF Core pull requests from the last week:
- EF Core 3.0 query overhaul:
- Significant updates to expansion of navigation properties
- Added back support for owned collections
- Wrap-up of support for owned entities
- Consolidation of eager-loading Include and normal Include
- No-tracking queries do not allow cycles in the Include path
- Entity equality now works with non-extension Contains
- The in-memory provider now supports reference Include
- Many test updates: 16889 16890 16892 16900 16905 16901 16916 16957 16967 16974 16996
- Cosmos provider:
- Applications can now specify the connection mode
- Bug fixed in enum mapping
- EF Core now depends on the RTM/GA release of SQLitePCL.raw 2.0.0
- Consolidation of IDENTITY annotations
- Improved support for non-nullable reference types
- Bug fixed where an Added entity that was detached didn't correctly cascade the detach
- Reverted to an older version of Homebrew to work around an issue with SpatialLite
- Bug fixed when attempting to track an owned entity without its owner
- Bug fixed in building of a deeply nested owned graph
- Bug fixed in generation of conflicting
nameof
in reverse engineering - Bug fixed when saving entities with variable length binary keys
EF6 pull requests from the last week:
- Bugs fixed in cross-platform tests
Community contributions
Community contributions to EF Core:
- @chiasottis contributed a change to allow applications to specify the Cosmos connection mode
Many thanks to @chiasottis for their contribution.
Issues remaining for 3.0
This is the burn-down chart we use internally to track progress towards EF Core 3.0. Some observations:
- The gray bar at the top represents all the issues already fixed for 3.0
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We have merged more progress on the new query pipeline--see Highlights above for details.
- At this time several important features are not fully working, but are coming soon. This includes:
- Global query filters
- Better support for queries against the in-memory provider
Tracking issue: #12795
Porting EF6 to .NET Core (Done)
What: Support EF6 on .NET Core.
Status: (No change from last week)
- Major feature work for the EF6.3 release is now complete.
- We are eliciting feedback on the usefulness of creating a
dotnet-ef6
tool.
- We are eliciting feedback on the usefulness of creating a
- Support in the VS Designer will now ship sometime after the runtime release
Tracking issue: dotnet/ef6#271
Provider model updates (Done)
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status: (No change from last week)
- API reviews have been completed and the surface area for providers is now locked down. There may still be some small tweaks before release based on feedback from external providers.
Tracking issue: #15405
Breaking changes (Done)
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- We have now completed all the significant breaking changes we plan to make for the 3.0 release. There may still be some small tweaks before release based on feedback.
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider (Done)
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status:
- All the major features we plan to ship in 3.0 are now done.
Tracking issue: #12086
Latest releases
EF Core:
- Nightly builds: install the latest preview SDK, then follow the instructions from the wiki
- Latest preview: EF Core 3.0 Preview 7 - see the .NET Core announcement post
- Current: EF Core 2.2.6
- LTS: EF Core 2.1.11
EF6:
- Nightly builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 7 - see the announcement post
- Current: EF 6.2.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.
August 15, 2019
Expand to see status from this week...
EF Core 3.0 Preview 8 and EF6.3 Preview 8 have shipped!
The EF Core 3.0 preview 8 package and EF 6.3 preview 8 package are now available for download from NuGet.
See the announcement blog post for full details.
Please install these previews to validate that all the functionality required by your applications is available and works correctly.
Please report any issues you find as soon as possible to either the EF Core issue tracker or the EF 6 issue tracker on GitHub.
At this point, we are especially interested in hearing about all issues blocking you from upgrading to the new releases, but please also try new functionality and provide general feedback.
Daily builds
The state of EF Core 3.0 is evolving rapidly--at the time of writing, 80 issues have been fixed since we branched for preview 8! Therefore, we recommend switching to daily builds if you are running into issues with preview 8. Note that the daily builds require the .NET Core preview 8 SDK to be installed.
Highlights from the last week
EF Core pull requests from the last week:
- EF Core 3.0 query overhaul:
- The new pipeline now supports translation of
SelectMany
for relational providers - The new pipeline now supports query filters using navigation properties
- The in-memory provider now supports Collection
Include
and Async CollectionInclude
- The in-memory provider now supports basic inheritance
- The state manager will not track keyless entity instances (formerly known as query types)
- Treat
FromSql
as a root when performing navigation expansion - Constant expression
FromSql
parameters are now handled - Some expression evaluation to constants have moved into the translation pipeline
- Bug fixes in various areas of entity equality
- Bug fix to throw when a compiled query references context indirectly
- Bug fixed in handling nulls in entity equality
- Bug fixed in tracking of weak entities
- Updates to service lifetimes for query services
- A lot of cleanup and test updates: 17130 17168 17153 17119 17113 17107 17104 17079 17073 17034 17039 17035 17012 17016
- The new pipeline now supports translation of
- EF Core now depends on the latest preview of Microsoft.Data.SqlClient
- Allow ignoring of the ambient transaction exception in SQLite
- Sugar methods for
IsSqlServer
, etc. added to MigrationBuilder - Further consolidation of query types and entity types
- Detection of concurrent use of the
DbContext
has been re-enabled - Bug fixed in cascade deletion of dependents in model data
- Bug fixed in changing comments when altering a table
- Bug fixed in creation of check constraints when creating a table
- Bug fixed in configuring value generation for composite key properties
- Bug fixed in formatting of default values in migrations
- Bug fixed in changing the type of a shadow property
- Bug fixed in matching FK properties to PK properties
- Bug fixed in creating unique index names across all tables
- We now use filtered solutions; Also 17061
EF6 pull requests from the last week:
- Bug fixed when
GetAncestor
returns the root node - Many small typo/wording fixes
Community contributions
Community contributions to EF Core:
- @xaviergxf contributed the sugar methods for
IsSqlServer
, etc. added to MigrationBuilder - @mirol-h contributed the bug fix for formatting of default values in migrations
Community contributions to EF6:
- @iosebyte contributed the bug fix for when
GetAncestor
returns the root node - @nschonni contributed many small typo/wording fixes
Many thanks to all our contributors this week for their hard work!
Issues remaining for 3.0
This is the burn-down chart we use internally to track progress towards EF Core 3.0. Some observations:
- The gray bar at the top represents all the issues already fixed for 3.0
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We have merged more progress on the new query pipeline--see Highlights above for details.
- At this time several important features are not fully working, but are coming soon. This includes:
- Better support for queries against the in-memory provider
Tracking issue: #12795
Porting EF6 to .NET Core (Done)
What: Support EF6 on .NET Core.
Status: (No change from last week)
- Major feature work for the EF6.3 release is now complete.
- We are eliciting feedback on the usefulness of creating a
dotnet-ef6
tool.
- We are eliciting feedback on the usefulness of creating a
- Support in the VS Designer will now ship sometime after the runtime release
Tracking issue: dotnet/ef6#271
Provider model updates (Done)
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status: (No change from last week)
- API reviews have been completed and the surface area for providers is now locked down. There may still be some small tweaks before release based on feedback from external providers.
Tracking issue: #15405
Breaking changes (Done)
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- We have now completed all the significant breaking changes we plan to make for the 3.0 release. There may still be some small tweaks before release based on feedback.
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider (Done)
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status: (No change from last week)
- All the major features we plan to ship in 3.0 are now done.
Tracking issue: #12086
Latest releases
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Latest preview: EF Core 3.0 Preview 8 - see the .NET Core announcement post
- Current: EF Core 2.2.6
- LTS: EF Core 2.1.11
EF6:
- Daily builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 8 - see the announcement post
- Current: EF 6.2.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.
August 22, 2019
Expand to see status from this week...
EF Core 3.0 and EF6.3 have branched for preview 9!
Preview 9 won't be on NuGet for a while yet, but please don't wait! Instead, get your feedback in early by using the daily builds which include 117 issues fixed since preview 8! Note that the daily builds require the .NET Core preview 8 SDK to be installed.
Please report any issues you find as soon as possible to either the EF Core issue tracker or the EF 6 issue tracker on GitHub.
At this point, we are especially interested in hearing about all issues blocking you from upgrading to 3.0, but please also try new functionality and provide general feedback.
See the preview 8 announcement blog post for more general information as well as information specific to preview 8.
Highlights from the last week
EF Core pull requests from the last week:
- EF Core 3.0 query overhaul:
- Reduced duplication of code for joins in
SelectExpression
- Improvement to skipping of constants in group-by queries
- Bug fixed to convert lateral joins to predicate joins only when appropriate
- Bug fixed in state management in
GroupJoinFlatteningExpressionVisitor
- Bug fixed to block aggregate functions and OrderBy on unsupported types
- Added support for constants/parameters appearing in group-by key
- Added support for population of collections before evaluation of projection
- Bug fixed in funcletization of member accesses
- Reduce untested surface area by disabling defining query for keyed entity types
- Improved exception messages when query translation fails
- Improved exception messages when query processing hits an error
- Support for table-splitting of non-owned types
- Allow providers to create a sub-query translating visitor
- Bug fixed to prevent client evaluation in queryable method projections
- Bug fixed to allow a query filter to reference the filtered entity type
- Added support for conversion of lateral joins to joins
- Support generating a single query for projected non-scalar single result
- Throw appropriately for
SingleOrDefault
and similar - Support for navigation expansion in group-by
- Support
OfType
andis
for the in-memory database
- Reduced duplication of code for joins in
- Cleanup of new API surface in a final round of API reviews
- Enhancement to allow checking for type mappings without using annotations
- Made
CoreAnnotationNames
internal again to help prevent misuse - Removed type parameter from
RegisterTypeParameter
- Improvements to the design for set operations
- Cleanup of Migrations APIs
- Cleanup of metadata APIs
- Fix semantics of lateral joins to more appropriate cross/outer-apply
- Bug fixed to prevent errors when loading a model snapshot
- Bug fixed in mapping of properties included in indexes
- Support for generating table comments in SQLite
- Bug fixed when
KeyAttribute
is overridden by fluent configuration - Bug fixed where
ForeignKeyAttribute
prevents an inverse navigation from being picked up - Bug fixed in finalization of
SqliteCommand
/SqliteConnection
- Bug fixed in interpretation of
Required
on navigation properties - Cleanup and test updates: 17155 17199 17295 17329 17335 17327 17351 17359
EF6 pull requests from the last week:
- Support for creating a
DbMigrator
with an explicitDbContext
instance - Bug fixed when using PMC commands without a config file
- NuSpec cleanup
Community contributions
Community contributions to EF Core:
- @skalpin contributed the support for generating table comments in SQLite
- @kosinsky contributed the improvement to skipping of constants in group-by queries
- @mirol-h contributed the bug fix for mapping of properties included in indexes
Many thanks to all our contributors this week for their hard work!
Issues remaining for 3.0
This is the burn-down chart we use internally to track progress towards EF Core 3.0. Some observations:
- The gray bar at the top represents all the issues already fixed for 3.0 - we are now at 517 issues fixed!
- We have two issues still being worked on for 3.0:
- Finishing query support for the in-memory provider
- Updating to RTM packages for SqlClient and NTS
- We are not planning anything else for 3.0, but high-priority fixes may still get made with director-level approval
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- Currently the only remaining work planned for 3.0 is better support for queries against the in-memory provider
Tracking issue: #12795
Porting EF6 to .NET Core (Done)
What: Support EF6 on .NET Core.
Status: (No change from last week)
- Major feature work for the EF6.3 release is now complete.
- We are eliciting feedback on the usefulness of creating a
dotnet-ef6
tool.
- We are eliciting feedback on the usefulness of creating a
- Support in the VS Designer will now ship sometime after the runtime release
Tracking issue: dotnet/ef6#271
Provider model updates (Done)
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status: (No change from last week)
- API reviews have been completed and the surface area for providers is now locked down. There may still be some small tweaks before release based on feedback from external providers.
Tracking issue: #15405
Breaking changes (Done)
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- We have now completed all the significant breaking changes we plan to make for the 3.0 release. There may still be some small tweaks before release based on feedback.
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider (Done)
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status: (No change from last week)
- All the major features we plan to ship in 3.0 are now done.
Tracking issue: #12086
Latest releases
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Latest preview: EF Core 3.0 Preview 8 - see the .NET Core announcement post
- Current: EF Core 2.2.6
- LTS: EF Core 2.1.11
EF6:
- Daily builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 8 - see the announcement post
- Current: EF 6.2.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.
August 29, 2019
Expand to see status from this week...
Try EF Core 3.0 and EF6.3 now!
Preview 9 won't be on NuGet for a while yet, but please don't wait! Instead, get your feedback in early by using the daily builds which include 134 issues fixed since preview 8! Note that the daily builds require the .NET Core preview 8 SDK to be installed.
The current daily builds are close to what we will ship for 3.0, other than a few areas in the in-memory provider. Please try it now while there is still time to fix any serious issues found.
Report any issues you find as soon as possible to either the EF Core issue tracker or the EF 6 issue tracker on GitHub.
See the preview 8 announcement blog post for more general information as well as information specific to preview 8.
Highlights from the last week
EF Core pull requests from the last week:
- EF Core 3.0 query overhaul:
- Fixed casting to interfaces and related patterns
- Support for
SelectMany
with the in-memory provider - Support for set operations with the in-memory provider
- Support for collection projections with the in-memory provider
- Support for non-scalar single results with the in-memory provider
- Support for spatial queries with the in-memory provider
- Support for null propagation/protection with the in-memory provider
- Support for
DefaultIfEmpty
with the in-memory provider - Support for
GroupBy
with aggregate in the in-memory provider - Fix to improve exception messages when translation fails
- Fix in-memory provider to not use multiple queries for Include
- In-memory test updates
- In-memory refactoring
- Update to the GA/RTM release of Net Topology Suite
- Update to the GA/RTM release of Microsoft.Data.SqlClient
- Bug fixes for the 3.1 release:
- Fixed mis-identification of collection navigation properties
- Fixed issue with non-implied properties in the Cosmos provider
- Fixed several issues in removing a primary key when overridden
- Improve command line output when project is building
- Regression test added for explicit null-checks of navigation properties
- Remove unused reference to System.Threading.Tasks.Extensions
- Fixed non-deterministic behavior in cross-apply tests
- Northwind test database update for SQLite
- Code cleanup
- Test code cleanup
Community contributions
Community contributions to EF Core:
- @skalpin contributed the improvement to tooling output while building
Many thanks to @skalpin for their contribution!
Issues remaining for 3.0
This is the burn-down chart we use internally to track progress towards EF Core 3.0. Some observations:
- The gray bar at the top represents all the issues already fixed for 3.0 - we are now at 536 issues fixed!
- We have one issue still being worked on for 3.0:
- Finishing query support for the in-memory provider
- We are not planning anything else for 3.0, but high-priority fixes may still make it to the release with director-level approval
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- Currently the only remaining work planned for 3.0 is better support for queries against the in-memory provider
Tracking issue: #12795
Porting EF6 to .NET Core (Done)
What: Support EF6 on .NET Core.
Status: (No change from last week)
- Major feature work for the EF6.3 release is now complete.
- We are eliciting feedback on the usefulness of creating a
dotnet-ef6
tool.
- We are eliciting feedback on the usefulness of creating a
- Support in the VS Designer will now ship sometime after the runtime release
Tracking issue: dotnet/ef6#271
Provider model updates (Done)
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status: (No change from last week)
- API reviews have been completed and the surface area for providers is now locked down. There may still be some small tweaks before release based on feedback from external providers.
Tracking issue: #15405
Breaking changes (Done)
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- We have now completed all the significant breaking changes we plan to make for the 3.0 release. There may still be some small tweaks before release based on feedback.
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider (Done)
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status: (No change from last week)
- All the major features we plan to ship in 3.0 are now done.
Tracking issue: #12086
Latest releases
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Latest preview: EF Core 3.0 Preview 8 - see the .NET Core announcement post
- Current: EF Core 2.2.6
- LTS: EF Core 2.1.11
EF6:
- Daily builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 8 - see the announcement post
- Current: EF 6.2.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.
September 5, 2019
Expand to see status from this week...
EF Core 3.0 and EF6.3 preview 9 released!
These are the last planned previews before we release the final versions later this month. We have almost completely stopped making changes to the product code, but we are still actively monitoring feedback for any important bugs that may be reported. So please install the previews to validate that all the functionality required by your applications is available and works correctly, and report any issues you find to either the EF Core issue tracker or the EF 6 issue tracker on GitHub.
Even if we may not be able to fix many more issues in EF Core 3.0 at this point, we’ll consider important bugs and regressions for the upcoming 3.1 release.
See the preview 9 announcement blog post for more general information as well as information specific to preview 9.
Consider installing daily builds
In Preview 9 the functionality of the in-memory provider is still very limited, but this is already fixed in our daily builds. In fact, we have already fixed more than 20 issues that aren’t included in Preview 9, and we may still fix a few more before RTM.
Detailed instructions to install daily builds, including the necessary NuGet feeds, can be found in the How to get daily builds of ASP.NET Core article.
What are we doing now?
Now that 3.0 is wrapping up, the EF team is transitioning to working on:
- Bug fixes for 3.1.
- 3.1 will be a LTS (Long Term Support) release, so we're stabilizing and fixing bugs for this release
- 3.1 will not have new features without .NET Director-level approval
- Technical debt
- Code cleanup, additional testing, test reliability, etc.
- Documentation
- Updating docs to be cover changes in the 3.0 release
- An overhaul of the getting started docs to make them more approachable/easier to follow
- Re-organization 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
- Planning and process improvements
Pull requests from the last week
EF Core
- EF Core 3.0 query overhaul:
- Merge of in-memory query work into the 3.0 release branch
- In-memory support for weak/owned entity types
- In-memory improvements for null protected and propagation
- In-memory provide update to preserve type of ValueBuffer expressions in SelectMany
- Updates to query-logging tests
- In-memory provider clean-up
- Scrub and re-enabling of in-memory tests
- Bug fixes for the 3.1 release:
- Bug fixed to avoid infinite loop when processing InversePropertyAnnotation
- Bug fixed to throw a better exception when deriving from an owned type
- Bug fixed to enable non-rowid store-generated keys in SQLite
- Bug fixed to throw a better exception when composing over a client projection
- Bug fixed to stop validating Cosmos partition keys on embedded types
- Bug fixed in visiting children for pending collections
- Bug fixed in support for ICollection.Contains
- Perf optimization for SelectExpression.VisitChildren
- Tests added for verification of GroupBy with conditional aggregate
- Tests added for tracking with coalless/conditional
- Tests added for FirstOrDefault with empty result
- Tests added for casting in a closure
Documentation
- Added a clarification on use of multiple query filters
- Typos/formatting/grammar: 1682
Community contributions
Community contributions to documentation:
- @ronnelsantiago contributed the a typo/grammar fix
Many thanks to @ronnelsantiago for their contribution!
Issues remaining for 3.0
This is the burn-down chart we use internally to track progress towards EF Core 3.0. Some observations:
- The gray bar at the top represents all the issues already fixed for 3.0 - we are now at 551 issues fixed!
- We are not planning anything else for 3.0, but high-priority fixes may still make it to the release with director-level approval
(You may be wondering why the count of issues fixed in 3.0 keeps going up even though we are done with 3.0. This is because we have a lot of issues that we think are fixed for 3.0, but which we haven't verified as fixed. Once we have verified that an issue has been fixed in 3.0, then we move that closed issue into the 3.0 milestone to reflect this.)
Major areas
While engineers frequently work on multiple things in parallel, these are the high-level areas that we are focusing on for the EF Core 3.0 release.
Query pipeline overhaul (Done)
What: The way LINQ queries are translated is getting a major overhaul for EF Core 3.0. Part of this involves removal of automatic client evaluation, except in the final projection.
Status:
- We are done with planned work for 3.0. Additional bug fixes and stabilization are happening for the 3.1 LTS release.
Tracking issue: #12795
Porting EF6 to .NET Core (Done)
What: Support EF6 on .NET Core.
Status: (No change from last week)
- Major feature work for the EF6.3 release is now complete.
- We are eliciting feedback on the usefulness of creating a
dotnet-ef6
tool.
- We are eliciting feedback on the usefulness of creating a
- Support in the VS Designer will now ship sometime after the runtime release
Tracking issue: dotnet/ef6#271
Provider model updates (Done)
What: We are promoting some internal types and concepts to public so that they can be consumed safely from database providers.
Status: (No change from last week)
- API reviews have been completed and the surface area for providers is now locked down. There may still be some small tweaks before release based on feedback from external providers.
Tracking issue: #15405
Breaking changes (Done)
What: We are making a number of breaking changes for EF Core 3.0 to improve the experience and functionality of EF Core in various important ways.
Status: (No change from last week)
- We have now completed all the significant breaking changes we plan to make for the 3.0 release. There may still be some small tweaks before release based on feedback.
- Breaking changes, including mitigations, are documented in the EF Core breaking changes doc.
Tracking issue: #15407
Cosmos database provider (Done)
What: We are continuing work on the EF Core database provider for Azure Cosmos.
Status: (No change from last week)
- All the major features we plan to ship in 3.0 are now done.
Tracking issue: #12086
Latest releases
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Latest preview: EF Core 3.0 Preview 9 - see the .NET Core announcement post
- Current: EF Core 2.2.6
- LTS: EF Core 2.1.11
EF6:
- Daily builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.3 Preview 9 - see the announcement post
- Current: EF 6.2.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.
September 19, 2019
Expand to see status from this week...
EF Core 3.0 and EF6.3 GA around the corner! Team focused on documentation updates and EF Core 3.1 improvements
We previously said that preview 9 would be your last chance to test EF Core 3.0 and EF 6.3 before general availability.
It turns out we made enough improvements to our libraries and across the whole of .NET Core 3.0 to justify publishing a release candidate build. Hence the packages for EF Core 3.0 RC1 and EF 6.3 RC1 are now available.
These are the last previews (this time for real! 😄) before we release the final versions on September 23 during .NET Conf.
We hope you can tune in for the talk Entity Framework Core 3.0 and beyond, at 3:00 PM PDT (22:00 UTC), with @divega and @smitpatel!
Consider installing daily builds
Even the RC1 builds come form branches that were frozen a couple of weeks ago, so there are at least a few additional bug fixes in our daily builds.
At this point we have completely stopped making changes to the product code in the release branches, an unless something really critical comes up, the current state of our daily builds is what we will release.
Anyway, if you find a bug now, please report it as soon as possible in either the EF Core issue tracker or the EF 6 issue tracker on GitHub. Even if we won't be able to fix any more issues in EF Core 3.0, we’ll consider them for 3.1.
Detailed instructions to install daily builds, including the necessary NuGet feeds, can be found in the How to get daily builds of ASP.NET Core article.
What are we doing now?
Now that 3.0 is wrapping up, our team is focused on making sure the documentation is ready for the imminent release, coding improvements to be included in EF Core 3.1 (to be released later this year), and paying technical debt.
EF Core 3.1
EF Core 3.1 will be a LTS (Long Term Support) release, so the focus is on stabilizing and fixing bugs rather than adding features. In fact, including new features in 3.1 requires .NET team's director-level approval.
The full set of issues fixed in 3.1 can seen by querying our issue tracker. Here are some worth mentioning:
- Fixes and improvements for issues found in the last minute for Cosmos DB provider
- Fixes and improvements for issues found in the last minute in the new LINQ pipeline
- Lots of regressions tests added for issues verified as fixed in 3.0
- Test stability improvements (investigating and fixing remaining flaky tests)
- Code cleanup.
Documentation updates
There are several kinds of updates we are making to our documentation:
- New articles that cover new features in 3.0, like the Cosmos DB provider docs
- Update existing articles to reflect the actual behavior and API changes in the new releases, like the new Keyless Entity Types document that replaces Query Types and the updated EF 6.3 release notes
- Overhaul of the getting started docs to make them more approachable and easier to follow (work in progress).
- General re-organization of docs and additional cross-references to make things easier to find
- Adding more details and clarifications to existing docs
- Updating the samples and adding more examples
EF Core “5.0”
We took another community PR for the next major version of EF Core last week. Thank you @SARAVANA1501 for your contribution.
October 17, 2019
Expand to see status from this week...
After a few weeks break while I have been away, EF weekly updates are now back!
EF Core 3.1
What you need to know about EF Core 3.1:
- The release cycle is short--EF Core 3.1 is scheduled for release on December 3.
- The goal of this release is stabilize 3.0 and fix bugs to prepare 3.1 for long term support (LTS)
- We have fixed 83 issues so far
- EF Core 3.1 contains no new significant features
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.
- Currently we have daily builds for 3.1 and for "5.0". Most work is currently going into the 3.1 builds.
- EF Core 3.1 preview 1 is available now on NuGet.
- Preview releases on NuGet are a reasonable way to help find issues and provide feedback. However, keep in mind that these releases tend to lag a couple weeks from what is happening on GitHub, and so are usually not as good an option as the daily builds. For example, the daily builds of 3.1 contain fixes for 34 issues not in the preview 1 release.
- Current: EF Core 3.0.0
- LTS: EF Core 2.1.14
What are we doing now?
We are currently spending most of our time fixing bugs for the 3.1 release--see above.
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 release
- An overhaul of the getting started docs to make them more approachable/easier to follow
- Re-organization 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
- Planning and process improvements
Planning for the "5.0" release (i.e. the one after 3.1) will start in the coming weeks.
Pull requests from the last week
EF Core
- Query bug fixes:
- Fixed escaping in StartsWith
- Better exception message when using FromSql methods with non-composable SQL
- Better parameter printing for null values
- Support for Expression.Invoke
- Ensure owned entities are loaded when projecting non-mapped property
- Fixed Union combined with OrderBy/Skip/Take
- Fixed creation of arrays in the top-level projection
- Migrations/tooling bug fixes:
- Other fixes:
- Dependency updates:
- Updated to use Microsoft.Azure.Cosmos 3.3.1
- Add support for more platforms in 3.1
- Test improvements:
Documentation
- Samples updated to use 3.0.0
- More information added on configuration of DbContext
- Updated link to multiple collection Include
- Updated query-tracking documentation
- Updated documentation for test doubles
Community contributions
- @crowet contributed the fix to migration batching when seed data has read-only columns
- @guftall fixed a typo
Many thanks to both for these contributions!
Issues remaining for 3.1
This is the burn-down chart we use internally to track progress towards EF Core 3.1. Some observations:
- The gray bar at the top represents all the issues already fixed for 3.1 - we are at 83 issues fixed
Latest releases
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Latest preview: EF Core 3.1 Preview 1
- Current: EF Core 3.0.0
- LTS: EF Core 2.1.14
EF6:
- Daily builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.4 Preview 1
- Current: EF 6.3.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.
October 24, 2019
Expand to see status from this week...
EF Core 3.1
What you need to know about EF Core 3.1:
- The release cycle is short--EF Core 3.1 is scheduled for release on December 3.
- The goal of this release is stabilize 3.0 and fix bugs to prepare 3.1 for long term support (LTS)
- We have fixed 110 issues so far
- EF Core 3.1 contains no new significant features
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.
- Currently we have daily builds for 3.1 and for "5.0". Most work is currently going into the 3.1 builds.
- EF Core 3.1 preview 1 is available now on NuGet.
- Preview releases on NuGet are a reasonable way to help find issues and provide feedback. However, keep in mind that these releases tend to lag a couple weeks from what is happening on GitHub, and so are usually not as good an option as the daily builds. For example, the daily builds of 3.1 contain fixes for 61 issues not in the preview 1 release.
- Current: EF Core 3.0.0
- LTS: EF Core 2.1.11
What are we doing now?
We are currently spending most of our time fixing bugs for the 3.1 release--see above.
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 release
- An overhaul of the getting started docs to make them more approachable/easier to follow
- Re-organization 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
- Planning and process improvements
Planning for the "5.0" release (i.e. the one after 3.1) will start in the coming weeks.
Pull requests from the last week
EF Core
- Query:
- Performance improvement through second-level query caching based on parameter nullability
- Fixed second-level query cache to use MemoryCache
- Performance improvement through optimization of SQL based on parameter nullability
- Fixed entity equality in query filters
- Fixed handling of ListInitExpression in entity equality
- Fixed issues with nullability and set operations
- Fixed translation of GroupBy-Aggregate when using result selector
- Improved readability of expressions in client evaluation exceptions
- Fixed building the query root for reloading entities
- Fixed use of NewExpression without constructor on some platforms
- Fixed matching object.Equals method in translation
- Fixed projection mapping when pushing down SelectExpression
- Fixed NullableMemberTranslator to only use
Nullable<T>
- Improve exception when translating Count with predicate on grouping
- Fixed translation of correlation predicate on owned collection
- Model building:
- Improved exception message for incorrect owned type configuration
- Fixed mapping of owned types to owner view
- Fixed relationship uniqueness when removing navigation to dependent
- Tweaked API for Azure database creation
- Fixed reading of nested owned types in 2.x model snapshots
- Fixed clearing of discriminator when discovering new non-root base type
- Change tracking:
- Migrations/tooling:
- Cosmos:
- Other fixes:
- Dependency updates:
- Test improvements:
- Testing for nullable reference types used with inheritance
- Testing for set operation over FromSql
EF6
- Re-added functions to the Package Manager Console Export-ModuleMember calls
Microsoft.Data.Sqlite:
Documentation
- Documented change to use Microsoft.Data.SqlClient
- Updated table-of-contents for complex query operators page
- Removed outdated sample for field-only properties
Community contributions
- @pacoweb contributed a scaffolding fix to include using directive for model namespace
- @mistachkin fixed an issue in EF6 when building fully-qualified path names
- @gurmeetsinghdke fixed some documentation formatting
- @vanillajonathan fixed documentation to use IANA example.com domain
- @riccikl fixed some documentation markdown formatting
Many thanks for your contributions!
Issues remaining for 3.1
This is the burn-down chart we use internally to track progress towards EF Core 3.1. Some observations:
- The gray bar at the top represents all the issues already fixed for 3.1 - we are at 110 issues fixed
Latest releases
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Latest preview: EF Core 3.1 Preview 1
- Current: EF Core 3.0.0
- LTS: EF Core 2.1.11
EF6:
- Daily builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.4 Preview 1
- Current: EF 6.3.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.
October 31, 2019
Expand to see status from this week...
EF Core 3.1
What you need to know about EF Core 3.1:
- The release cycle is short--EF Core 3.1 is scheduled for release on December 3.
- The goal of this release is stabilize 3.0 and fix bugs to prepare 3.1 for long term support (LTS)
- We have fixed 129 issues so far
- EF Core 3.1 contains no new significant features
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. However, note that the builds are currently a few days old as we work through infrastructure issues.
- We work hard to keep the daily builds in good shape by running over 50,000 tests per TFM for each build.
- Currently we have daily builds for 3.1 and for "5.0". Most work is currently going into the 3.1 builds.
- EF Core 3.1 preview 1 is available now on NuGet.
- Preview releases on NuGet are a reasonable way to help find issues and provide feedback. However, keep in mind that these releases tend to lag a couple weeks from what is happening on GitHub, and so are usually not as good an option as the daily builds. For example, the daily builds of 3.1 contain fixes for 61 issues not in the preview 1 release.
- Current: EF Core 3.0.0
- LTS: EF Core 2.1.11
What are we doing now?
We are currently spending most of our time fixing bugs for the 3.1 release--see above.
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 release
- An overhaul of the getting started docs to make them more approachable/easier to follow
- Re-organization 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
- Planning and process improvements
Planning for the "5.0" release (i.e. the one after 3.1) will start in the coming weeks.
Pull requests from the last week
EF Core
- Query
- Fixed incorrect queryable conversion for sources that are not queryable
- Refactored shaped query compilation visitors
- Fixed several issues in navigation expansion
- Fixed conditional and null-coalescing handling in parameter extraction
- Removed internal in-memory operator provider
- Fixed Contains translation for arbitrary collection types
- Mitigate usability of IX-Async and EF Core together
- Optimization of null semantics when checking if expression is null
- Model building:
- Migrations/tooling:
- Fixed tools NuGet package to not include dependency group
- Fixed scaffolding of value-generation facets
- Fixed snapshotting temporary values for Added entities
- Other:
- Code cleanup
- Fixed SQLite provider to treat in-memory databases as always existing
- Test improvements:
EF6
Microsoft.Data.Sqlite:
Documentation
Community contributions
- @riccikl contributed a change to move doc code samples into compilable projects
- @chrfin contributed an improvement to EF6 query compilation performance
- @ite-klass contributed formatting improvements in EF6 API docs
- @OOberoi contributed improved wording for EF Core 3.0 query documentation
- @Psypher9 contributed a typo fix for the EF6 documentation
Many thanks for your contributions!
Issues remaining for 3.1
This is the burn-down chart we use internally to track progress towards EF Core 3.1. Some observations:
- The gray bar at the top represents all the issues already fixed for 3.1 - we are at 129 issues fixed
Latest releases
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Latest preview: EF Core 3.1 Preview 1
- Current: EF Core 3.0.0
- LTS: EF Core 2.1.11
EF6:
- Daily builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.4 Preview 1
- Current: EF 6.3.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.
November 7, 2019
Expand to see status from this week...
EF Core 3.1
EF Core 3.1 Preview 2 is on NuGet! However, we still recommend using the daily builds--see below.
What you need to know about EF Core 3.1:
- The release cycle is short--EF Core 3.1 is scheduled for release on December 3.
- The goal of this release is to stabilize 3.0 and fix bugs to prepare 3.1 for long term support (LTS)
- We have fixed 140 issues so far
- EF Core 3.1 contains no new significant features
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.
- Currently we have daily builds for 3.1 and for "5.0". Most work is currently going into the 3.1 builds.
- EF Core 3.1 preview 2 is available now on NuGet.
- Preview releases on NuGet are a reasonable way to help find issues and provide feedback. However, keep in mind that these releases tend to lag a couple weeks from what is happening on GitHub, and so are usually not as good an option as the daily builds. For example, the daily builds of 3.1 contain fixes for 36 issues not in the preview 2 release.
- Current: EF Core 3.0.0
- LTS: EF Core 2.1.11
What are we doing now?
We are currently spending most of our time fixing bugs for the 3.1 release--see above.
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 release
- An overhaul of the getting started docs to make them more approachable/easier to follow
- Re-organization 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
- Planning and process improvements
Planning for the "5.0" release (i.e. the one after 3.1) will start in the coming weeks.
Pull requests from the last week
This week we have merged 12 pull requests from community contributors! Way to go, community! Thanks so much!
Community contributions
- @pmiddleton fixed metadata for function mapping to use namespace-qualified names
- @chrfin fixed a concurrency issue in EF6 and re-enabled some perf improvements
- @breyed fixed a typo
- @morrisjdev added the FileContextCore database provider to the external providers list
- @gurmeetsinghdke added several links and small improvements to the EF6 documentation: 1859 1858 1860 1873
- @EricStG updated documentation for Npgsql spatial transformations
- @Psypher9 fixed a typo
- @vanillajonathan fixed code formatting
- @StefH fixed double quote characters
EF Core
- Query
- Fix query filters against null navigations
- Fix connection resiliency/Azure retries for queries
- More fixes to improve optimization of null expansions
- Fix to improve null handling with flags enums
- Fix to handle casts in navigation expansion
- Fix to generate correct default for FirstOrDefault in sub-queries
- Unwrap query nodes around entity before doing member lookup
- Deprecated NullConditionalExpression
- Deprecated UseRowNumberForPaging API, since it is no longer functional
- Improvements to expression printing
- Other:
- Updated Cosmos dependency to 3.3.3
- Updated SQLitePCL.raw dependency to 2.0.2
- Code cleanup
- Test improvements:
- Remove unnecessary element sorters
- Test older model snapshots with owned types
- Fix some pseudo-non-determinism in tests
- Apply element sorter in AssertIncludeQuery
- Ignore line-endings in test assertions
- More test coverage for null semantics
- Test for coalesce with not equals
- Improve reliability of Cosmos tests
- Disable flakey Cosmos tests: 18683 18726
- Documentation:
- Updated Cosmos provider documentation
Issues remaining for 3.1
This is the burn-down chart we use internally to track progress towards EF Core 3.1. Some observations:
- The gray bar at the top represents all the issues already fixed for 3.1 - we are at 140 issues fixed
Latest releases
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Latest preview: EF Core 3.1 Preview 2
- Current: EF Core 3.0.0
- LTS: EF Core 2.1.11
EF6:
- Daily builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.4 Preview 2
- Current: EF 6.3.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.
November 14, 2019
Expand to see status from this week...
EF Core 3.1
EF Core 3.1 Preview 3 is on NuGet! This is the last preview before GA/RTM and contains almost everything we plan to ship in 3.1. Please try it now!
What you need to know about EF Core 3.1:
- The release cycle is short--EF Core 3.1 is scheduled for release on December 3.
- The goal of this release is to stabilize 3.0 and fix bugs to prepare 3.1 for long term support (LTS)
- We have fixed 145 issues so far
- EF Core 3.1 contains no new significant features
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.
- Currently we have daily builds for 3.1 and for "5.0". Most work is currently going into the 3.1 builds.
- EF Core 3.1 preview 3 is available now on NuGet.
- Preview releases on NuGet are a reasonable way to help find issues and provide feedback. However, keep in mind that these releases tend to lag a couple weeks from what is happening on GitHub, and so are usually not as good an option as the daily builds.
- Current: EF Core 3.0.0
- LTS: EF Core 2.1.11
What are we doing now?
The 3.1 release is now locked down; we don't expect to put any more changes into 3.1.
Planning for the "5.0" release (i.e. the one after 3.1) has started! We will share more in the coming weeks.
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 release
- An overhaul of the getting started docs to make them more approachable/easier to follow
- Re-organization 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
- Planning and process improvements
Pull requests from the last week
Community contributions
- @vanillajonathan fixed formatting issues
- @jtheisen submitted an update to the external extensions list
Many thanks to @vanillajonathan and @jtheisen!
EF Core
- Query
- Fixed culture-specific comparison causing query failures for some languages
- Ported the fix for filtering against null reference types to 3.1
- Fixed joins where key selector is anonymous with single property
- Added support for non boolean bitwise compliment
- Other:
- Updated README
- Removed obsolete code ready for 5.0
- Test improvements:
- Fixed query assertions
- Added regression tests for parameter reuse
- Added regression tests for GroupBy on keyless entities
- Enabled more null semantics tests
- Switched to using declarations in many tests: 18816 18801
- Cleaned up test output helpers
- Cleaned up parameter naming in async tests
- Documentation:
- Clarifications for owned-types documentation
- New documentation for setting Azure SQL database options
- Show how to map multiple columns to the same property when using TPH
- Clarifications for value generation of primary key values
Issues remaining for 3.1
This is the burn-down chart we use internally to track progress towards EF Core 3.1. Some observations:
- As stated above, we don't have any more changes planned for 3.1.
- The gray bar at the top represents all the issues already fixed for 3.1 - we are at 145 issues fixed
Latest releases
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Latest preview: EF Core 3.1 Preview 3
- Current: EF Core 3.0.0
- LTS: EF Core 2.1.11
EF6:
- Daily builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.4 Preview 3
- Current: EF 6.3.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.
November 21, 2019
Expand to see status from this week...
EF Core 3.1
EF Core 3.1 Preview 3 is on NuGet! This is the last preview before GA/RTM and contains almost everything we plan to ship in 3.1. Please try it now!
What you need to know about EF Core 3.1:
- The release cycle is short--EF Core 3.1 is scheduled for release on December 3.
- The goal of this release is to stabilize 3.0 and fix bugs to prepare 3.1 for long-term support (LTS)
- We have fixed 150 issues so far
- EF Core 3.1 contains no new significant features
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.
- Currently we have daily builds for 3.1 and for "5.0". Most work is currently going into the 3.1 builds.
- EF Core 3.1 preview 3 is available now on NuGet.
- Preview releases on NuGet are a reasonable way to help find issues and provide feedback. However, keep in mind that these releases tend to lag a couple weeks from what is happening on GitHub. This means daily builds are often a better option.
- Current: EF Core 3.0.1
- LTS: EF Core 2.1.14
What are we doing now?
The 3.1 release is now locked down; we don't expect to put any more changes into 3.1.
Critical bugs in 3.1 are now being considered for patch releases.
Planning for the "5.0" release (i.e. the one after 3.1) has started and we are making good progress. We will have something to share soon.
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 release
- 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
- Planning and process improvements
Pull requests from the last week
Community contributions
- @ptjhuang fixed queries with deep nesting by flattening Case expressions
- @ivaylokenov fixed a typo in ParameterExtractingExpressionVisitor
- @Youssef1313 updated docs metadata for dotnet commands
- @jfoshee fixed a typo in the SDK link
Many thanks to all our contributors this week!
EF Core
- Query
- Fixed issue with complex OrderBy/ThenBy using navigations
- Fixed comparisons of spatial types to not use topological semantics
- Corrected SqlFunctionExpression to accept SqlExpression
- Enable optimizations by injecting SearchConditionConvertingExpressionVisitor into ParameterValueBasedSelectExpressionOptimizer
- Make ParameterBasedQueryTranslationPostprocessor public
- Stop using VisitAndConvert in ProjectionBindingExpressionVisitor
- Cosmos
- Dependency updates:
- Other:
- Make health checks more robust by catch exceptions in CanConnect
- Stop exposing ICurrentDbContext on QueryCompilationContextDependencies
- Test improvements:
- Improve developer experience by splitting large test classes
- Switched to using declarations in remaining tests
- Documentation:
- Fixed typo in owned entity docs
- Cleaned up doc links
Issues remaining for 3.1
The 3.1 release is now closed down. The burn-down will return for 5.0 once the plan is ready.
Latest releases
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Latest preview: EF Core 3.1 Preview 3
- Current: EF Core 3.0.1
- LTS: EF Core 2.1.14
EF6:
- Daily builds: install the latest preview SDK, then use the feeds listed on the repo homepage
- Latest preview: EF 6.4 Preview 3
- Current: EF 6.3.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.
December 5, 2019
Expand to see status from this week...
EF Core 3.1
The GA/RTM release of EF Core 3.1 is out and available on NuGet now!
What's new in 3.1?
The primary goal of EF Core 3.1 is to polish the features and scenarios we delivered in EF Core 3.0. EF Core 3.1 will be a long term support (LTS) release, supported for at least 3 years. To this end we have fixed over 150 issues for the 3.1 release, but there are no major new features to announce.
Support for .NET Standard 2.0
EF Core 3.1 reintroduces support for .NET Standard 2.0, rather than requiring .NET Standard 2.1 as was the case for EF Core 3.0. This means EF Core 3.1 will run on .NET Framework versions supported by the standard.
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.
- Current: EF Core 3.1.0
- LTS: EF Core 3.1.0
EF 6.4
The GA/RTM release of EF 6.4 is also out and available on NuGet now. Similar to EF Core, the primary goal of EF 6.4 is to polish the features and scenarios we delivered in EF 6.3. To this end we have fixed important issues found in EF 6.3 to create a more stable release.
What are we doing now?
Critical bugs in 3.1 are now being considered for patch releases. The first patch release is tentatively scheduled for January.
Planning for the "5.0" release (i.e. the one after 3.1) has started and we are making good progress. We will have something to share soon.
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
- Planning and process improvements
- Holiday spirit and recovering from the intense 3.0/3.1 release!
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 Logging
This feature is the moral equivalent of Database.Log
in EF6. That is, it provides a simple way to get logs from EF Core without the need to configure any kind of external logging framework.
EF Core replaces Database.Log
with a LogTo
method called on DbContextOptionsBuilder in either AddDbContext or OnConfiguring. For example:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder.LogTo(Console.WriteLine);
Overloads exist to:
- Set the minimum log level
- Example:
.LogTo(Console.WriteLine, LogLevel.Information)
- Example:
- Filter for only specific events:
- Example:
.LogTo(Console.WriteLine, new[] {CoreEventId.ContextInitialized, RelationalEventId.CommandExecuted})
- Example:
- Filter for all events in specific categories:
- Example:
.LogTo(Console.WriteLine, new[] {DbLoggerCategory.Database.Name}, LogLevel.Information)
- Example:
- Use a custom filter over event and level:
- Example:
.LogTo(Console.WriteLine, (id, level) => id == RelationalEventId.CommandExecuting)
- Example:
Output format can be minimally configured (API is in flux) but the default output looks something like:
warn: 12/5/2019 09:57:47.574 CoreEventId.SensitiveDataLoggingEnabledWarning[10400] (Microsoft.EntityFrameworkCore.Infrastructure)
Sensitive data logging is enabled. Log entries and exception messages may include sensitive application data, this mode should only be enabled during development.
dbug: 12/5/2019 09:57:47.581 CoreEventId.ShadowPropertyCreated[10600] (Microsoft.EntityFrameworkCore.Model.Validation)
The property 'BlogId' on entity type 'Post' was created in shadow state because there are no eligible CLR members with a matching name.
info: 12/5/2019 09:57:47.618 CoreEventId.ContextInitialized[10403] (Microsoft.EntityFrameworkCore.Infrastructure)
Entity Framework Core 5.0.0-dev initialized 'BloggingContext' using provider 'Microsoft.EntityFrameworkCore.SqlServer' with options: SensitiveDataLoggingEnabled
dbug: 12/5/2019 09:57:47.644 CoreEventId.ValueGenerated[10808] (Microsoft.EntityFrameworkCore.ChangeTracking)
'BloggingContext' generated temporary value '-2147482647' for the 'Id' property of new 'Blog' entity.
...
Translation of Contains on byte arrays
Queries using Contains on byte[] properties are now translated to SQL. For example:
var blogs = context.Blogs.Where(e => e.Picture.Contains((byte)127)).ToList();
Translates to the following on SQL Server:
info: 12/5/2019 11:42:42.022 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command)
Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT [b].[Id], [b].[Picture], [b].[Title]
FROM [Blogs] AS [b]
WHERE CHARINDEX(0x7F, [b].[Picture]) > 0
Pull requests from the last two weeks
Community contributions
- @cincuranet reintroduced GeneratePseudoFromClause for use by external providers
- @OOberoi fixed grammar in getting started documentation
- @rmarskell contributed a clarifying change to a parameter name
- @ozantopal fixed a typo in index documentation
Many thanks to all our contributors!
EF Core
- Query
- Fixed invalid SQL when using conditional expression with null-valued parameter
- This issue is approved for the 3.1.1 patch release.
- Fixed exception thrown from Avg/Min/Max when result is zero
- This issue is approved for the 3.1.1 patch release.
- Fixed incorrect exception message for SingleAsync
- Support for Contains on byte arrays with SQLite
- Support for Contains on byte arrays with SQL Server
- Fixed invalid SQL when using conditional expression with null-valued parameter
- Dependency updates:
- Pin dependencies to 3.1 versions
- Other:
- Fixed incorrect Obsolete link
- This issue is approved for the 3.1.1 patch release.
- Implementation of simple logging
- Implemented a debug view for the state manager
- Implemented a shorter debug view for the model
- Updated private nested classes to avoid virtual methods
- Moved GitHub wiki pages to markdown in repo
- Removed unused SqlServerOptions
- Fixed incorrect Obsolete link
- Tests:
- Updates to null-expansion regression tests
- Improvements to query validation tests
- Test cleanup
- More test cleanup
- Fixed simple logging test failure
- Fixed a SQLite test reliability issue
- Added byte array property to test model
- Documentation:
Issues remaining for 5.0
The burn-down will return for 5.0 once the plan is ready.
Latest releases
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Current: EF Core 3.1.0
- 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.
December 12, 2019
Expand to see status from this week...
EF Core 3.1
The GA/RTM release of EF Core 3.1 is out and available on NuGet now!
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.
- Current: EF Core 3.1.0
- LTS: EF Core 3.1.0
What are we doing now?
Critical bugs in 3.1 are now being considered for patch releases. The first patch release is tentatively scheduled for January.
Planning for the "5.0" release (i.e. the one after 3.1) has started and we are making good progress. We need to sync with the .NET directors before we can share publicly.
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
- Planning and process improvements
- Holiday spirit and recovering from the intense 3.0/3.1 release!
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.
Debug views
Debug views are an easy way to look at the internals of EF Core when debugging issues. A debug view for the Model was implemented some time ago. For EF Core 5.0, we have made the model view easier to read and added a new debug view for tracked entities in the state manager.
Model debug view
Drill down into the Model property of the DbContext in your debugger of choice and expand the DebugView
property.
The LongView
is the model view we have had for some time. The ShortView
is new and doesn't include model annotations, which make it much easier to read. For example, here is one of our test models:
Model:
EntityType: Chassis
Properties:
TeamId (int) Required PK FK AfterSave:Throw
Name (string)
Version (no field, byte[]) Shadow Concurrency BeforeSave:Ignore AfterSave:Ignore ValueGenerated.OnAddOrUpdate
Navigations:
Team (_team, Team) ToPrincipal Team Inverse: Chassis PropertyAccessMode.Field
Keys:
TeamId PK
Foreign keys:
Chassis {'TeamId'} -> Team {'Id'} Unique ToDependent: Chassis ToPrincipal: Team
EntityType: Driver
Properties:
Id (int) Required PK AfterSave:Throw ValueGenerated.OnAdd
CarNumber (Nullable<int>)
Championships (int) Required
Discriminator (no field, string) Shadow Required
FastestLaps (int) Required
Name (string)
Podiums (int) Required
Poles (int) Required
Races (int) Required
TeamId (int) Required FK Index
Version (no field, byte[]) Shadow Concurrency BeforeSave:Ignore AfterSave:Ignore ValueGenerated.OnAddOrUpdate
Wins (int) Required
Navigations:
Team (_team, Team) ToPrincipal Team Inverse: Drivers PropertyAccessMode.Field
Keys:
Id PK
Foreign keys:
Driver {'TeamId'} -> Team {'Id'} ToDependent: Drivers ToPrincipal: Team
Indexes:
TeamId
EntityType: Engine
Properties:
Id (int) Required PK AfterSave:Throw ValueGenerated.OnAdd
EngineSupplierId (int) Required FK Index Concurrency
Name (string) Concurrency
Navigations:
EngineSupplier (_engineSupplier, EngineSupplier) ToPrincipal EngineSupplier Inverse: Engines PropertyAccessMode.Field
Gearboxes (_gearboxes, ICollection<Gearbox>) Collection ToDependent Gearbox PropertyAccessMode.Field
StorageLocation (Location) ToDependent Location PropertyAccessMode.Field
Teams (_teams, ICollection<Team>) Collection ToDependent Team Inverse: Engine PropertyAccessMode.Field
Keys:
Id PK
Foreign keys:
Engine {'EngineSupplierId'} -> EngineSupplier {'Id'} ToDependent: Engines ToPrincipal: EngineSupplier
Indexes:
EngineSupplierId
EntityType: EngineSupplier
Properties:
Id (int) Required PK AfterSave:Throw ValueGenerated.OnAdd
Name (string)
Navigations:
Engines (_engines, ICollection<Engine>) Collection ToDependent Engine Inverse: EngineSupplier PropertyAccessMode.Field
Keys:
Id PK
EntityType: Gearbox
Properties:
Id (int) Required PK AfterSave:Throw ValueGenerated.OnAdd
EngineId (no field, Nullable<int>) Shadow FK Index
Name (string)
Keys:
Id PK
Foreign keys:
Gearbox {'EngineId'} -> Engine {'Id'} ToDependent: Gearboxes
Indexes:
EngineId
EntityType: Location
Properties:
EngineId (no field, int) Shadow Required PK FK AfterSave:Throw ValueGenerated.OnAdd
Latitude (double) Required Concurrency
Longitude (double) Required Concurrency
Keys:
EngineId PK
Foreign keys:
Location {'EngineId'} -> Engine {'Id'} Unique Ownership ToDependent: StorageLocation
EntityType: Sponsor
Properties:
Id (int) Required PK AfterSave:Throw ValueGenerated.OnAdd
ClientToken (no field, Nullable<int>) Shadow Concurrency
Discriminator (no field, string) Shadow Required
Name (string)
Version (no field, byte[]) Shadow Concurrency BeforeSave:Ignore AfterSave:Ignore ValueGenerated.OnAddOrUpdate
Keys:
Id PK
EntityType: SponsorDetails
Properties:
TitleSponsorId (no field, int) Shadow Required PK FK AfterSave:Throw ValueGenerated.OnAdd
ClientToken (no field, Nullable<int>) Shadow Concurrency
Days (int) Required
Space (decimal) Required
Version (no field, byte[]) Shadow Concurrency BeforeSave:Ignore AfterSave:Ignore ValueGenerated.OnAddOrUpdate
Keys:
TitleSponsorId PK
Foreign keys:
SponsorDetails {'TitleSponsorId'} -> TitleSponsor {'Id'} Unique Ownership ToDependent: Details
EntityType: Team
Properties:
Id (int) Required PK AfterSave:Throw
Constructor (string)
ConstructorsChampionships (int) Required
DriversChampionships (int) Required
EngineId (no field, Nullable<int>) Shadow FK Index
FastestLaps (int) Required
GearboxId (Nullable<int>) FK Index
Name (string)
Poles (int) Required
Principal (string)
Races (int) Required
Tire (string)
Version (no field, byte[]) Shadow Concurrency BeforeSave:Ignore AfterSave:Ignore ValueGenerated.OnAddOrUpdate
Victories (int) Required
Navigations:
Chassis (_chassis, Chassis) ToDependent Chassis Inverse: Team PropertyAccessMode.Field
Drivers (_drivers, ICollection<Driver>) Collection ToDependent Driver Inverse: Team PropertyAccessMode.Field
Engine (_engine, Engine) ToPrincipal Engine Inverse: Teams PropertyAccessMode.Field
Gearbox (_gearbox, Gearbox) ToPrincipal Gearbox PropertyAccessMode.Field
Keys:
Id PK
Foreign keys:
Team {'EngineId'} -> Engine {'Id'} ToDependent: Teams ToPrincipal: Engine
Team {'GearboxId'} -> Gearbox {'Id'} Unique ToPrincipal: Gearbox
Indexes:
EngineId
GearboxId Unique
EntityType: TestDriver Base: Driver
EntityType: TitleSponsor Base: Sponsor
Navigations:
Details (_details, SponsorDetails) ToDependent SponsorDetails PropertyAccessMode.Field
State manager debug view
The state manager is a little mode hidden than the model. To find it, drill down into the ChangeTracker property of the DbContext in your debugger of choice and then look in the StateManager
property and expand the DebugView
.
The short view of the state manager shows:
- Each entity being tracked
- Its primary key value(s)
- The entity state - one of Added, Unchanged, Modified, or Deleted.
- The values of an foreign key properties
For example:
Engine (Shared) {Id: 1} Unchanged FK {EngineSupplierId: 1}
Location (Shared) {EngineId: 1} Unchanged FK {EngineId: 1}
Team (Shared) {Id: 4} Modified FK {EngineId: 1} FK {GearboxId: <null>}
The long view shows everything in the short view together with:
- The current value of each property
- Whether or not the property is marked as modified
- The original value of the property, if different from the current value
- The entity referenced by a reference navigation using the referenced entity's primary key value
- The list if entities referenced by a collection navigation, again using primary key values
For example:
Engine (Shared) {Id: 1} Unchanged
Id: 1 PK
EngineSupplierId: 1 FK
Name: 'FO 108X'
EngineSupplier: <null>
Gearboxes: <null>
StorageLocation: {EngineId: 1}
Teams: [{Id: 4}]
Location (Shared) {EngineId: 1} Unchanged
EngineId: 1 PK FK
Latitude: 47.64491
Longitude: -122.128101
Team (Shared) {Id: 4} Modified
Id: 4 PK
Constructor: 'Ferrari'
ConstructorsChampionships: 16
DriversChampionships: 15
EngineId: 1 FK Modified Originally 3
FastestLaps: 221
GearboxId: <null> FK
Name: 'Scuderia Ferrari Marlboro'
Poles: 203
Principal: 'Stefano Domenicali'
Races: 805
Tire: 'Bridgestone'
Version: '0x000000000001405A'
Victories: 212
Chassis: <null>
Drivers: []
Engine: {Id: 1}
Gearbox: <null>
Pull requests from the last two weeks
Community contributions
- @svengeance fixed an issue when concatenating null with strings
- @cincuranet contributed several fixes for SQL Server-specific ordering in provider tests: 19217 19223 19221
- @redoz Fixed a typo in the change tracking documentation
Many thanks to all our contributors!
EF Core
- Query:
- Fixed issue preventing both constructor and property initializers being used in a projection
- This issue is approved for the 3.1.1 patch release.
- Improved MemberInfo matching for explicitly built expression trees
- Cleanup: 19191 19271
- Added argument checking for InExpression
- Fixed issue preventing both constructor and property initializers being used in a projection
- Cosmos:
- Fixed corruption of owned collection when updating in same context as query
- This issue is approved for the 3.1.1 patch release.
- Fixed corruption of owned collection when updating in same context as query
- Dependency updates:
- Pin dependencies to 3.1 versions
- Other:
- Warn when an AddEntityFramework... method is called from application code
- This issue is approved for the 3.1.1 patch release.
- Updated nullable metadata and checking for query and Cosmos
- Replaced Debug.Assert with less complex alternative
- Updated LogTo logging based on design meeting feedback
- Warn when an AddEntityFramework... method is called from application code
- Tests:
- Documentation:
- Merging of relational table documentation
Microsoft.Data.Sqlite
- Huge documentation overall for Microsoft.Data.Sqlite including lots of new information
- Connection Strings
- Data Types
- Parameters
- Database Errors
- Transactions
- Batching
- Metadata
- In-Memory Databases
- Encryption
- Online Backup
- User-Defined Functions
- Custom SQLite Versions
- Collation
- BLOB I/O
- Interoperability
- Extensions
- Using with Entity Framework Core
- Using with Dapper
- Compare to System.Data.SQLite
- Using with Xamarin
Issues remaining for 5.0
The burn-down will return for 5.0 once the plan is ready.
Latest releases
EF Core:
- Daily builds: install the latest preview SDK, then follow the instructions from the wiki
- Current: EF Core 3.1.0
- 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.