Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Latest news and progress on .NET 8 and EF8 #29989

Closed
ajcvickers opened this issue Jan 5, 2023 · 12 comments
Closed

Latest news and progress on .NET 8 and EF8 #29989

ajcvickers opened this issue Jan 5, 2023 · 12 comments
Assignees
Labels
closed-no-further-action The issue is closed and no further action is planned.
Milestone

Comments

@ajcvickers
Copy link
Member

ajcvickers commented Jan 5, 2023

July 6, 2023

Highlights

Boolean columns with non-false default values are now handled correctly, including when scaffolded from an existing database. For example, consider this table:

CREATE TABLE [Members] (
    [Id] int NOT NULL IDENTITY,
    [Name] nvarchar(max) NULL,
    [IsActive] bit NOT NULL DEFAULT CAST(1 AS bit),
    CONSTRAINT [PK_Member] PRIMARY KEY ([Id]))

EF8 now parses literal values in column default constraints, allowing HasDefaultValue to be scaffolded instead of HasDefaultValyeSql. For example, CAST(1 AS bit) is parsed as true:

modelBuilder.Entity<Member>(entity =>
{
    entity.Property(e => e.IsActive).HasDefaultValue(true);
});

EF checks the value of a property to determine whether or not to let the database generate a value. Starting with EF8, this check can be customized. This means that EF8 will send false to the database when needed, since database default is known to be true.

In addition:

EF Core 8 (EF8)

EF Core 8 (EF8) will be the next release after EF Core 7.0. It will be released alongside .NET 8 in November 2023.

The EF Core 8 Plan is available publicly in our documentation. As always, feedback is greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.

Each high-level area for EF Core 8 is linked in the table below together with its current high-level status.

EF Core 8 Theme Feature Status
Highly requested features JSON columns In-progress
Translate element access of a JSON array Complete
Support for JSON columns in SQLite Complete
Support JSON columns in compiled models Complete
Map collections of primitive types to JSON column in relational database Complete
Map collections of primitive types to JSON column in relational database Complete
Optimize update path for single property element Complete
Use -> and ->> in SQLite instead of json_extract Complete
Value objects In-progress
Raw SQL queries for unmapped types Complete
Support the new BCL DateOnly and TimeOnly structs for SQL Server Complete
Support SQL Server HierarchyID in EF Core Complete
Cloud native and devices AOT and trimming with EF Core In-progress
AOT and trimming for ADO.NET In-progress
NativeAOT/trimming compatibility for Microsoft.Data.Sqlite Complete
Performance Woodstar In-progress
Contains translated to parameterized IN queries Complete
Visual Tooling First-class T4 templates in Visual Studio Cut
EF Core Database First in Visual Studio In-progress
Developer experience Developer experience In-progress
Support querying over primitive collections Complete
Remove unneeded parentheses in SQL queries Complete
Translate ElementAt(OrDefault) Complete
Opt-out of lazy-loading for specific navigations Complete
Lazy-loading for no-tracking queries Complete
Reverse engineer Synapse and Dynamics 365 TDS Complete
Set MaxLength on TPH discriminator property by convention Complete
Translate ToString() on a string column Complete
Generic overload of ConventionSetBuilder.Remove Complete
Lookup tracked entities by primary key, alternate key, or foreign key Complete
Allow UseSequence and HiLo on non-key properties Complete
Pass query tracking behavior to materialization interceptor Complete
Use case-insensitive string key comparisons on SQL Server Complete
Allow value converters to change the DbType Complete
Resolve application services in EF services Complete
Numeric rowersion properties automatically convert to binary Complete
Allow transfer of ownership of DbConnection from application to DbContext Complete
Provide more information when 'No DbContext was found' error is generated Complete

Burndown for EF8

This is the burndown chart the team uses internally to track progress on EF Core 8.

EF8 Burndown
  • The upper chart shows work committed for EF8
  • The lower chart shows work completed for EF8
  • On each chart:
    • Enhancements are in green and are shown at the bottom
    • Bugs are in red and are stacked in the middle
    • Other issues are in blue and stacked at the top

EF Core 8 Preview 5

EF Core 8 (EF8) Preview 5 is available from NuGet

Preview 5 contains the following new features:

In addition, Preview 2 contains the following features from Previews 1, 2, 3, and 4:

See GitHub for all issues resolved in Preview 1, Preview 2, Preview 3, Preview 4, and Preview 5.

EF Core 7.0.8

EF Core 7.0.8 is available on NuGet now.

This is a patch release of EF Core 7.0 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 7.0.7.

EF Core 7.0.7 was also release since the last new update. It contains the following important bug fixes:

EF Core 6.0.19

EF Core 6.0.19 is available on NuGet now. This is a patch release of EF Core 6 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 6.0.16.

Pull requests merged since the last update

Community contributions

Many thanks to all our contributors!

EF Core

Builds to use

  • The daily builds are the most up-to-date available.
    • The daily builds now contain all issues merged for 7.0.x patch releases, as well as new code to be released in EF8 previews.
    • The daily builds work on both .NET 6 and .NET 7.
  • Preview: EF Core 8 Preview 5
    • Preview releases lag behind the daily build. We recommend using the daily builds whenever possible.
  • Current: EF Core 7.0.8
  • LTS: EF Core 6.0.19

Releases

See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.

Weekly/biweekly updates from previous years

Feedback

Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.

@dotnet dotnet locked and limited conversation to collaborators Jan 5, 2023
@ajcvickers ajcvickers added this to the Discussions milestone Jan 5, 2023
@ajcvickers ajcvickers self-assigned this Jan 5, 2023
@ajcvickers ajcvickers pinned this issue Jan 5, 2023
@ajcvickers
Copy link
Member Author

January 5, 2023

Expand to see status from this week...

Highlights

.NET 8 and EF8

Work for .NET 8 and EF8 is well underway, with more than 70 GitHub issues already fixed. This includes 29 enhancements such as:

Don't wait for preview 1; get all these changes now using the daily builds! The daily builds work on both .NET 6 and .NET 7.

EF7 patch releases

A 7.0.3 release of EF7 is planned for February containing important bug fixes. Remember that all these fixes are already available for .NET 6 and .NET 7 in the daily builds.

EF Core 3.1 is now out-of-support

Just a reminder that .NET Core 3.1 and EF Core 3.1 went out-of-support on December 13, 2022. EF Core 5.0 is also out-of-support, so please update to EF Core 7.0 or EF Core 6.0 for long-term-support.

Community Standup: The plan for EF8

The plan has been published for EF Core 8 and other data access work in .NET 8. This includes work in five major themes:

  • Highly requested features
  • Cloud native and devices
  • Performance
  • Visual tooling
  • Developer experience

Join the .NET Data Team for a discussion of what’s in and what’s out.

You can watch all .NET Data Community Standups on YouTube. We live-stream every other Wednesday to Twitch, YouTube, and Twitter. Comment on GitHub with ideas for guests, demos, or anything else you want to see.

EF Core 8 (EF8)

EF Core 8 (EF8) will be the next release after EF Core 7.0. It will be released alongside .NET 8 in November 2023.

The EF Core 8 Plan is available publicly in our documentation. As always, feedback is greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.

Each high-level area for EF Core 8 is linked in the table below together with its current high-level status.

EF Core 8 Theme Feature Status
Highly requested features JSON columns In-progress
Translate element access of a JSON array Complete
Value objects Planned
Raw SQL queries for unmapped types In-progress
Cloud native and devices AOT and trimming with EF Core In-progress
AOT and trimming for ADO.NET In-progress
Performance Woodstar Planned
Visual Tooling First-class T4 templates in Visual Studio Planned
EF Core Database First in Visual Studio Planned
Developer experience Developer experience In-progress
Translate ElementAt(OrDefault) Complete
Opt-out of lazy-loading for specific navigations Complete
Lazy-loading for no-tracking queries Complete
Reverse engineer Synapse and Dynamics 365 TDS Complete
Set MaxLength on TPH discriminator property by convention Complete
Translate ToString() on a string column Complete
Generic overload of ConventionSetBuilder.Remove Complete
Lookup tracked entities by primary key, alternate key, or foreign key Complete
Allow UseSequence and HiLo on non-key properties Complete
Pass query tracking behavior to materialization interceptor Complete
Use case-insensitive string key comparisons on SQL Server Complete
Allow value converters to change the DbType Complete
Resolve application services in EF services Complete
Numeric rowersion properties automatically convert to binary Complete

Burndown for EF8

This is the burndown chart the team uses internally to track progress on EF Core 8.

EF8 Burndown
  • The upper chart shows work committed for EF8
  • The lower chart shows work completed for EF8
  • On each chart:
    • Enhancements are in green and are shown at the bottom
    • Bugs are in red and are stacked in the middle
    • Other issues are in blue and stacked at the top

EF Core 7.0.1 (EF7)

EF Core 7.0.1 is available on NuGet now. This is a patch release of EF Core 7 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 7.0.0.

EF Core 6.0.12

EF Core 6.0.12 is available on NuGet now. This is a patch release of EF Core 6 containing only important bug fixes:

Pull requests merged since the last update

Community contributions

Many thanks to all our contributors!

EF Core

Builds to use

  • The daily builds are the most up-to-date available.
    • The daily builds now contain all issues merged for 7.0.x patch releases, as well as new code to be released in EF8 previews.
    • The daily builds work on both .NET 6 and .NET 7.
  • Current: EF Core 7.0.1
  • LTS: EF Core 6.0.12

Releases

See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.

Weekly/biweekly updates from previous years

Feedback

Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.

@ajcvickers
Copy link
Member Author

January 19, 2023

Expand to see status from this week...

Highlights

.NET 8 and EF8

The highly requested feature Raw SQL queries for unmapped types is now included in the 30+ enhancements ready for EF8 preview 1. For example, for some arbitrary type not included in the EF model:

public class PostSummary
{
    public string BlogName { get; set; }
    public string PostTitle { get; set; }
    public DateTime PublishedOn { get; set; }
}

A SQL query can be used to return instances of this type:

var start = new DateTime(2022, 1, 1);
var end = new DateTime(2023, 1, 1);
var summaries =
    await context.Database.SqlQuery<PostSummary>(
            @$"SELECT b.Name AS BlogName, p.Title AS PostTitle, p.PublishedOn
               FROM Posts AS p
               INNER JOIN Blogs AS b ON p.BlogId = b.Id
               WHERE p.PublishedOn >= {start} AND p.PublishedOn < {end}")
        .ToListAsync();

The start and end dates will be appropriately parameterized, keeping the query safe and efficient.

The SqlQuery method can also be used to query views, execute stored procedures, or call database functions.

Don't wait for preview 1; try it now using the daily builds! The daily builds work on both .NET 6 and .NET 7.

EF7 patch releases

A 7.0.3 release of EF7 is planned for February containing important bug fixes. Remember that all these fixes are already available for .NET 6 and .NET 7 in the daily builds.

Community Standup: Entity Framework Core FAQs

In the latest .NET Data Community Standup, the Microsoft .NET Data Access team shared answers to many frequently asked questions about EF Core. For example:

  • What's the difference between EF Core and EF6?
  • What NuGet packages to I need to install to use EF Core?
  • Should I always use no-tracking queries?
  • Why does EF Core sometimes ignore Includes?
  • What's wrong with using owned types for value objects?
  • Should I create a repository over EF Core?
  • Why does the in-memory database not work in my tests?
  • How do I call stored procedures from EF Core?
  • How do I see the SQL for a LINQ query?

You can watch all .NET Data Community Standups on YouTube. We live-stream every other Wednesday to Twitch, YouTube, and Twitter. Comment on GitHub with ideas for guests, demos, or anything else you want to see.

EF Core 8 (EF8)

EF Core 8 (EF8) will be the next release after EF Core 7.0. It will be released alongside .NET 8 in November 2023.

The EF Core 8 Plan is available publicly in our documentation. As always, feedback is greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.

Each high-level area for EF Core 8 is linked in the table below together with its current high-level status.

EF Core 8 Theme Feature Status
Highly requested features JSON columns In-progress
Translate element access of a JSON array Complete
Value objects Planned
Raw SQL queries for unmapped types Complete
Cloud native and devices AOT and trimming with EF Core In-progress
AOT and trimming for ADO.NET In-progress
Performance Woodstar Planned
Visual Tooling First-class T4 templates in Visual Studio Planned
EF Core Database First in Visual Studio Planned
Developer experience Developer experience In-progress
Translate ElementAt(OrDefault) Complete
Opt-out of lazy-loading for specific navigations Complete
Lazy-loading for no-tracking queries Complete
Reverse engineer Synapse and Dynamics 365 TDS Complete
Set MaxLength on TPH discriminator property by convention Complete
Translate ToString() on a string column Complete
Generic overload of ConventionSetBuilder.Remove Complete
Lookup tracked entities by primary key, alternate key, or foreign key Complete
Allow UseSequence and HiLo on non-key properties Complete
Pass query tracking behavior to materialization interceptor Complete
Use case-insensitive string key comparisons on SQL Server Complete
Allow value converters to change the DbType Complete
Resolve application services in EF services Complete
Numeric rowersion properties automatically convert to binary Complete
Allow transfer of ownership of DbConnection from application to DbContext Complete
Provide more information when 'No DbContext was found' error is generated Complete

Burndown for EF8

This is the burndown chart the team uses internally to track progress on EF Core 8.

EF8 Burndown
  • The upper chart shows work committed for EF8
  • The lower chart shows work completed for EF8
  • On each chart:
    • Enhancements are in green and are shown at the bottom
    • Bugs are in red and are stacked in the middle
    • Other issues are in blue and stacked at the top

EF Core 7.0.2 (EF7)

EF Core 7.0.2 is available on NuGet now. This is a patch release of EF Core 7 containing only important bug fixes:

EF Core 6.0.13

EF Core 6.0.13 is available on NuGet now. This is a patch release of EF Core 6 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 6.0.12.

Pull requests merged since the last update

Community contributions

Many thanks to all our contributors!

EF Core

Microsoft.Data.Sqlite

Builds to use

  • The daily builds are the most up-to-date available.
    • The daily builds now contain all issues merged for 7.0.x patch releases, as well as new code to be released in EF8 previews.
    • The daily builds work on both .NET 6 and .NET 7.
  • Current: EF Core 7.0.2
  • LTS: EF Core 6.0.13

Releases

See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.

Weekly/biweekly updates from previous years

Feedback

Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.

@ajcvickers
Copy link
Member Author

February 2, 2023

Expand to see status from this week...

Highlights

.NET 8 and EF8

New for EF8: DateOnly and TimeOnly mapping for SQL Server and Azure SQL!

Thanks to a community contribution from @ErikEJ, DateOnly and TimeOnly are now supported in Microsoft.Data.SqlClient. We have built on this to add support ready for EF Core 8 Preview 1. DateOnly and TimeOnly are mapped to the T-SQL date and time types respectively. For example, the following entity type:

public class School
{
    public int Id { get; set; }
    public string Name { get; set; }
    public DateOnly Founded { get; set; }
    public TimeOnly OpensAt { get; set; }
    public TimeOnly ClosedAt { get; set; }
    public List<Term> Terms { get; } = new();
}

Maps to this table:

CREATE TABLE [Schools] (
    [Id] int NOT NULL IDENTITY,
    [Name] nvarchar(max) NOT NULL,
    [Founded] date NOT NULL,
    [OpensAt] time NOT NULL,
    [ClosedAt] time NOT NULL,
    CONSTRAINT [PK_Schools] PRIMARY KEY ([Id])
);

For Database First workflows, date and time columns will be reverse-engineered (scaffolded) to DateOnly and TimeOnly properties.

Full CRUD operations are supported with DateOnly and TimeOnly. For example, the following LINQ query:

var now = DateOnly.FromDateTime(DateTime.UtcNow);
var currentTerms = await context.Schools
    .Include(s => s.Terms.Where(t => t.FirstDay <= now && t.LastDay >= now))
    .ToListAsync();

Generates the following T-SQL query:

SELECT [s].[Id], [s].[ClosedAt], [s].[Founded], [s].[Name], [s].[OpensAt], [t0].[Id], [t0].[FirstDay], [t0].[LastDay], [t0].[Name], [t0].[SchoolId]
FROM [Schools] AS [s]
LEFT JOIN (
    SELECT [t].[Id], [t].[FirstDay], [t].[LastDay], [t].[Name], [t].[SchoolId]
    FROM [Term] AS [t]
    WHERE [t].[FirstDay] <= @__now_0 AND [t].[LastDay] >= @__now_0
) AS [t0] ON [s].[Id] = [t0].[SchoolId]
ORDER BY [s].[Id]

EF7 patch releases

A 7.0.3 release of EF7 is planned for February containing important bug fixes. Remember that all these fixes are already available for .NET 6 and .NET 7 in the daily builds.

Azure Cosmos DB Live TV: Streamline Your Data Access with Entity Framework Core

In this episode of Azure Cosmos DB Live TV, Mark Brown welcomes Jiachen Jiang and Arthur Vickers (PM and Engineering Lead for Entity Framework Core) to discuss the experience that EF Core brings to the table for developers working with Azure Cosmos DB and when devs should consider using EF Core for their project.

Community Standup: Entity Framework Core FAQs

In the latest .NET Data Community Standup, the Microsoft .NET Data Access team shared answers to many frequently asked questions about EF Core. For example:

  • What's the difference between EF Core and EF6?
  • What NuGet packages to I need to install to use EF Core?
  • Should I always use no-tracking queries?
  • Why does EF Core sometimes ignore Includes?
  • What's wrong with using owned types for value objects?
  • Should I create a repository over EF Core?
  • Why does the in-memory database not work in my tests?
  • How do I call stored procedures from EF Core?
  • How do I see the SQL for a LINQ query?

You can watch all .NET Data Community Standups on YouTube. We live-stream every other Wednesday to Twitch, YouTube, and Twitter. Comment on GitHub with ideas for guests, demos, or anything else you want to see.

EF Core 8 (EF8)

EF Core 8 (EF8) will be the next release after EF Core 7.0. It will be released alongside .NET 8 in November 2023.

The EF Core 8 Plan is available publicly in our documentation. As always, feedback is greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.

Each high-level area for EF Core 8 is linked in the table below together with its current high-level status.

EF Core 8 Theme Feature Status
Highly requested features JSON columns In-progress
Translate element access of a JSON array Complete
Value objects Planned
Raw SQL queries for unmapped types Complete
Support the new BCL DateOnly and TimeOnly structs for SQL Server Complete
Cloud native and devices AOT and trimming with EF Core In-progress
AOT and trimming for ADO.NET In-progress
Performance Woodstar Planned
Visual Tooling First-class T4 templates in Visual Studio Planned
EF Core Database First in Visual Studio Planned
Developer experience Developer experience In-progress
Translate ElementAt(OrDefault) Complete
Opt-out of lazy-loading for specific navigations Complete
Lazy-loading for no-tracking queries Complete
Reverse engineer Synapse and Dynamics 365 TDS Complete
Set MaxLength on TPH discriminator property by convention Complete
Translate ToString() on a string column Complete
Generic overload of ConventionSetBuilder.Remove Complete
Lookup tracked entities by primary key, alternate key, or foreign key Complete
Allow UseSequence and HiLo on non-key properties Complete
Pass query tracking behavior to materialization interceptor Complete
Use case-insensitive string key comparisons on SQL Server Complete
Allow value converters to change the DbType Complete
Resolve application services in EF services Complete
Numeric rowersion properties automatically convert to binary Complete
Allow transfer of ownership of DbConnection from application to DbContext Complete
Provide more information when 'No DbContext was found' error is generated Complete

Burndown for EF8

This is the burndown chart the team uses internally to track progress on EF Core 8.

EF8 Burndown
  • The upper chart shows work committed for EF8
  • The lower chart shows work completed for EF8
  • On each chart:
    • Enhancements are in green and are shown at the bottom
    • Bugs are in red and are stacked in the middle
    • Other issues are in blue and stacked at the top

EF Core 7.0.2 (EF7)

EF Core 7.0.2 is available on NuGet now. This is a patch release of EF Core 7 containing only important bug fixes:

EF Core 6.0.13

EF Core 6.0.13 is available on NuGet now. This is a patch release of EF Core 6 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 6.0.12.

Pull requests merged since the last update

Community contributions

Many thanks to all our contributors!

EF Core

Builds to use

  • The daily builds are the most up-to-date available.
    • The daily builds now contain all issues merged for 7.0.x patch releases, as well as new code to be released in EF8 previews.
    • The daily builds work on both .NET 6 and .NET 7.
  • Current: EF Core 7.0.2
  • LTS: EF Core 6.0.13

Releases

See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.

Weekly/biweekly updates from previous years

Feedback

Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.

@ajcvickers
Copy link
Member Author

February 16, 2023

Expand to see status from this week...

Highlights

EF Core 7.0.3

EF Core 7.0.3 is on NuGet now. This patch release contains many important bug fixes for EF7. If you're using EF7, then update now! If you're not using EF7, then what are you waiting for? It runs on .NET 6 or 7.

GitHub repo survey

We want your feedback on what we are doing well and what we could do better in our GitHub repo.

Community Standup: SQLite with .NET and EF Core

In the latest .NET Data Community Standup, Eric Sink (creator of SQLitePCL.raw) and Brice Lambson (creator of Microsoft.Data.Sqlite) join the .NET Data Access Team to discuss everything SQLite on .NET. We start down low digging into different ways to get the SQLite native binaries using Eric’s packages. Then move up the stack to look at the basics of SQLite on .NET with Brice’s ADO.NET provider. Going higher still, we’ll look at how to get the most from SQLite using Dapper or EF Core.

You can watch all .NET Data Community Standups on YouTube. We live-stream every other Wednesday to Twitch, YouTube, and Twitter. Comment on GitHub with ideas for guests, demos, or anything else you want to see.

EF Core 8 (EF8)

EF Core 8 (EF8) will be the next release after EF Core 7.0. It will be released alongside .NET 8 in November 2023.

The EF Core 8 Plan is available publicly in our documentation. As always, feedback is greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.

Each high-level area for EF Core 8 is linked in the table below together with its current high-level status.

EF Core 8 Theme Feature Status
Highly requested features JSON columns In-progress
Translate element access of a JSON array Complete
Value objects Planned
Raw SQL queries for unmapped types Complete
Support the new BCL DateOnly and TimeOnly structs for SQL Server Complete
Cloud native and devices AOT and trimming with EF Core In-progress
AOT and trimming for ADO.NET In-progress
Performance Woodstar Planned
Visual Tooling First-class T4 templates in Visual Studio Planned
EF Core Database First in Visual Studio Planned
Developer experience Developer experience In-progress
Translate ElementAt(OrDefault) Complete
Opt-out of lazy-loading for specific navigations Complete
Lazy-loading for no-tracking queries Complete
Reverse engineer Synapse and Dynamics 365 TDS Complete
Set MaxLength on TPH discriminator property by convention Complete
Translate ToString() on a string column Complete
Generic overload of ConventionSetBuilder.Remove Complete
Lookup tracked entities by primary key, alternate key, or foreign key Complete
Allow UseSequence and HiLo on non-key properties Complete
Pass query tracking behavior to materialization interceptor Complete
Use case-insensitive string key comparisons on SQL Server Complete
Allow value converters to change the DbType Complete
Resolve application services in EF services Complete
Numeric rowersion properties automatically convert to binary Complete
Allow transfer of ownership of DbConnection from application to DbContext Complete
Provide more information when 'No DbContext was found' error is generated Complete

Burndown for EF8

This is the burndown chart the team uses internally to track progress on EF Core 8.

EF8 Burndown
  • The upper chart shows work committed for EF8
  • The lower chart shows work completed for EF8
  • On each chart:
    • Enhancements are in green and are shown at the bottom
    • Bugs are in red and are stacked in the middle
    • Other issues are in blue and stacked at the top

EF Core 7.0.3

EF Core 7.0.3 is available on NuGet now. This is a patch release of EF Core 7 containing only important bug fixes:

EF Core 6.0.14

EF Core 6.0.14 is available on NuGet now. This is a patch release of EF Core 6 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 6.0.13.

Pull requests merged since the last update

Community contributions

Many thanks to all our contributors!

EF Core

Microsoft.Data.Sqlite

Builds to use

  • The daily builds are the most up-to-date available.
    • The daily builds now contain all issues merged for 7.0.x patch releases, as well as new code to be released in EF8 previews.
    • The daily builds work on both .NET 6 and .NET 7.
  • Current: EF Core 7.0.3
  • LTS: EF Core 6.0.14

Releases

See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.

Weekly/biweekly updates from previous years

Feedback

Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.

@ajcvickers
Copy link
Member Author

March 2, 2023

Expand to see status from this week...

Highlights

New in the daily builds (aka.ms/ef-daily-builds)

Plus, EF8 Preview 1 is on NuGet now!

  • Raw SQL queries for unmapped types
  • DateOnly and TimeOnly support for SQL Server
  • Lazy-loading for no-tracking queries
  • Lazy-loading opt-out for navigations
  • Reverse engineering for Synapse/Dynamics 365 TDS
  • Lookup tracked entities by key or foreign key
  • MaxLength set by convention for TPH discriminators

Complete documentation on What's New in Preview 1, with runnable samples: aka.ms/ef8-new

Community Standup: MySQL and .NET

In the latest .NET Data Community Standup, the .NET Data Access Team is joined by Bradley Grainger and Laurents Meyer, authors of the open-source MySQL ADO.NET driver and of the Pomelo EF Core provider. Both these components work together to provide a 1st-class MySQL data access experience in .NET. We discuss some of the specifities of MySQL as a database and what it's like to work on open source data projects in .NET.

You can watch all .NET Data Community Standups on YouTube. We live-stream every other Wednesday to Twitch, YouTube, and Twitter. Comment on GitHub with ideas for guests, demos, or anything else you want to see.

EF Core 8 (EF8)

EF Core 8 (EF8) will be the next release after EF Core 7.0. It will be released alongside .NET 8 in November 2023.

The EF Core 8 Plan is available publicly in our documentation. As always, feedback is greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.

Each high-level area for EF Core 8 is linked in the table below together with its current high-level status.

EF Core 8 Theme Feature Status
Highly requested features JSON columns In-progress
Translate element access of a JSON array Complete
Support for JSON columns in SQLite Complete
Support JSON columns in compiled models Complete
Value objects Planned
Raw SQL queries for unmapped types Complete
Support the new BCL DateOnly and TimeOnly structs for SQL Server Complete
Support SQL Server HierarchyID in EF Core Complete
Cloud native and devices AOT and trimming with EF Core In-progress
AOT and trimming for ADO.NET In-progress
Performance Woodstar In-progress
Visual Tooling First-class T4 templates in Visual Studio Planned
EF Core Database First in Visual Studio In-progress
Developer experience Developer experience In-progress
Translate ElementAt(OrDefault) Complete
Opt-out of lazy-loading for specific navigations Complete
Lazy-loading for no-tracking queries Complete
Reverse engineer Synapse and Dynamics 365 TDS Complete
Set MaxLength on TPH discriminator property by convention Complete
Translate ToString() on a string column Complete
Generic overload of ConventionSetBuilder.Remove Complete
Lookup tracked entities by primary key, alternate key, or foreign key Complete
Allow UseSequence and HiLo on non-key properties Complete
Pass query tracking behavior to materialization interceptor Complete
Use case-insensitive string key comparisons on SQL Server Complete
Allow value converters to change the DbType Complete
Resolve application services in EF services Complete
Numeric rowersion properties automatically convert to binary Complete
Allow transfer of ownership of DbConnection from application to DbContext Complete
Provide more information when 'No DbContext was found' error is generated Complete

Burndown for EF8

This is the burndown chart the team uses internally to track progress on EF Core 8.

EF8 Burndown
  • The upper chart shows work committed for EF8
  • The lower chart shows work completed for EF8
  • On each chart:
    • Enhancements are in green and are shown at the bottom
    • Bugs are in red and are stacked in the middle
    • Other issues are in blue and stacked at the top

EF Core 7.0.3

EF Core 7.0.3 is available on NuGet now. This is a patch release of EF Core 7 containing only important bug fixes:

EF Core 6.0.14

EF Core 6.0.14 is available on NuGet now. This is a patch release of EF Core 6 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 6.0.13.

Pull requests merged since the last update

Community contributions

Many thanks to all our contributors!

EF Core

Builds to use

  • The daily builds are the most up-to-date available.
    • The daily builds now contain all issues merged for 7.0.x patch releases, as well as new code to be released in EF8 previews.
    • The daily builds work on both .NET 6 and .NET 7.
  • Preview: EF Core 8 Preview 1
    • Preview releases lag behind the daily build. We recommend using the daily builds whenever possible.
  • Current: EF Core 7.0.3
  • LTS: EF Core 6.0.14

Releases

See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.

Weekly/biweekly updates from previous years

Feedback

Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.

@ajcvickers
Copy link
Member Author

March 16, 2023

Expand to see status from this week...

Highlights

EF8 Preview 2 is on NuGet now!

Preview 2 contains support for JSON column mapping on SQLite and official* support for the hierarchyid type on SQL Server.

Hierarchy IDs are used to map tree structures. For example, the diagram below shows the hierarchy ID mappings for a paternal family tree of halflings:

Halfling family tree

We can then use these mappings to, for example, find the common ancestor of Bilbo and Frodo:

async Task<Halfling?> FindCommonAncestor(Halfling first, Halfling second)
    => await context.Halflings
        .Where(
            ancestor => first.PathFromPatriarch.IsDescendantOf(ancestor.PathFromPatriarch)
                        && second.PathFromPatriarch.IsDescendantOf(ancestor.PathFromPatriarch))
        .OrderByDescending(ancestor => ancestor.PathFromPatriarch.GetLevel())
        .FirstOrDefaultAsync();

Which translates to:

SELECT TOP(1) [h].[Id], [h].[Name], [h].[PathFromPatriarch], [h].[YearOfBirth]
FROM [Halflings] AS [h]
WHERE @__first_PathFromPatriarch_0.IsDescendantOf([h].[PathFromPatriarch]) = CAST(1 AS bit)
  AND @__second_PathFromPatriarch_1.IsDescendantOf([h].[PathFromPatriarch]) = CAST(1 AS bit)
ORDER BY [h].[PathFromPatriarch].GetLevel() DESC

And the answer is, of course, Balbo.

See aka.ms/ef8-new for more fun with halflings and other documentation for Preview 1 and Preview 2. With runnable samples on GitHub!

*Unofficial support for hierarchyid in EF Core has been available for many years via the EntityFrameworkCore.SqlServer.HierarchyId package. This package has been maintained as a collaboration between the community and the EF team. Now that there is official support for hierarchyid in .NET, the code from this community package forms, with the permission of the original contributors, the basis for the official package described here. Many thanks to all those involved over the years, including @aljones, @cutig3r, @huan086, @kmataru, @mehdihaghshenas, @vyrotek, and @yuryjhol.

Community Standup: IQueryable, LINQ and the EF Core query pipeline

In the latest .NET Data Community Standup, 2000 viewers joined us over the course of a nearly two hour event to dive deep under the hood and see how EF Core processes LINQ queries, translates them to SQL and executes them on your database. We introduced key concepts such as IQueryable and LINQ providers, and looked into how EF Core uses caching to make your querying lightning-fast.

You can watch all .NET Data Community Standups on YouTube. We live-stream every other Wednesday to Twitch, YouTube, and Twitter. Comment on GitHub with ideas for guests, demos, or anything else you want to see.

EF Core 8 (EF8)

EF Core 8 (EF8) will be the next release after EF Core 7.0. It will be released alongside .NET 8 in November 2023.

The EF Core 8 Plan is available publicly in our documentation. As always, feedback is greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.

Each high-level area for EF Core 8 is linked in the table below together with its current high-level status.

EF Core 8 Theme Feature Status
Highly requested features JSON columns In-progress
Translate element access of a JSON array Complete
Support for JSON columns in SQLite Complete
Support JSON columns in compiled models Complete
Value objects Planned
Raw SQL queries for unmapped types Complete
Support the new BCL DateOnly and TimeOnly structs for SQL Server Complete
Support SQL Server HierarchyID in EF Core Complete
Cloud native and devices AOT and trimming with EF Core In-progress
AOT and trimming for ADO.NET In-progress
Performance Woodstar In-progress
Visual Tooling First-class T4 templates in Visual Studio Planned
EF Core Database First in Visual Studio In-progress
Developer experience Developer experience In-progress
Translate ElementAt(OrDefault) Complete
Opt-out of lazy-loading for specific navigations Complete
Lazy-loading for no-tracking queries Complete
Reverse engineer Synapse and Dynamics 365 TDS Complete
Set MaxLength on TPH discriminator property by convention Complete
Translate ToString() on a string column Complete
Generic overload of ConventionSetBuilder.Remove Complete
Lookup tracked entities by primary key, alternate key, or foreign key Complete
Allow UseSequence and HiLo on non-key properties Complete
Pass query tracking behavior to materialization interceptor Complete
Use case-insensitive string key comparisons on SQL Server Complete
Allow value converters to change the DbType Complete
Resolve application services in EF services Complete
Numeric rowersion properties automatically convert to binary Complete
Allow transfer of ownership of DbConnection from application to DbContext Complete
Provide more information when 'No DbContext was found' error is generated Complete

Burndown for EF8

This is the burndown chart the team uses internally to track progress on EF Core 8.

EF8 Burndown
  • The upper chart shows work committed for EF8
  • The lower chart shows work completed for EF8
  • On each chart:
    • Enhancements are in green and are shown at the bottom
    • Bugs are in red and are stacked in the middle
    • Other issues are in blue and stacked at the top

EF Core 7.0.4

EF Core 7.0.4 is available on NuGet now. This is a patch release of EF Core 7 containing only important bug fixes:

And for Microsoft.Data.Sqlite:

EF Core 6.0.15

EF Core 6.0.15 is available on NuGet now. This is a patch release of EF Core 6 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 6.0.14.

Pull requests merged since the last update

Community contributions

Many thanks to all our contributors!

EF Core

Microsoft.Data.Sqlite

Builds to use

  • The daily builds are the most up-to-date available.
    • The daily builds now contain all issues merged for 7.0.x patch releases, as well as new code to be released in EF8 previews.
    • The daily builds work on both .NET 6 and .NET 7.
  • Preview: EF Core 8 Preview 2
    • Preview releases lag behind the daily build. We recommend using the daily builds whenever possible.
  • Current: EF Core 7.0.4
  • LTS: EF Core 6.0.15

Releases

See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.

Weekly/biweekly updates from previous years

Feedback

Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.

@ajcvickers
Copy link
Member Author

March 30, 2023

Expand to see status from this week...

Highlights

Major overall of the EF Core relationship mapping docs

Eight new pages covering:

  • 12 one-to-many relationship examples
  • 13 one-to-one relationship examples
  • 16 many-to-many relationship examples
  • Using foreign, primary, and alternate keys
  • Navigation configuration
  • What the relationship mapping conventions do
  • Using mapping attributes/data annotations
  • A glossary of terms

All with runnable code on GitHub!

Bonus: A simple intro to the basic concepts.

Other new documentation

  • Modernized Installing EF Core docs
  • Additional details in Scaffolding (Reverse Engineering) docs, including:
    • More details on handling conncection strings and using User Secrets
    • Clarification and examples for selecting tables, views, and schemas
    • Example preserving database naming
    • Scaffolding on many-to-many relationships
    • Use of C# nullable reference types
    • Approaches for scaffolding once verses repeated scaffolding
  • Documentation for EntityTypeConfigurationAttribute

Progress on...

  • Work has started on value objects support.
  • The relational model can now be compiled, which is needed for AOT.
  • Improved translation for Contains in under way.

Community Standup: Using hierarchical data in SQL Server and PostgreSQL with EF Core

In the latest .NET Data Community Standup, the .NET Data Access Team demonstrated mapping hierarchical data structures to relational databases using EF Core. This included using “hierarchyid” on SQL Server/Azure SQL and “ltree” on PostgresSQL, with demos using a family tree structure. EF Core is used to write LINQ queries against the hierarchy to find ancestors and descendants in various ways, as well as perform manipulation of subtrees for updates. And, as always, we answered questions from the live audience.

You can watch all .NET Data Community Standups on YouTube. We live-stream every other Wednesday to Twitch, YouTube, and Twitter. Comment on GitHub with ideas for guests, demos, or anything else you want to see.

EF Core 8 (EF8)

EF Core 8 (EF8) will be the next release after EF Core 7.0. It will be released alongside .NET 8 in November 2023.

The EF Core 8 Plan is available publicly in our documentation. As always, feedback is greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.

Each high-level area for EF Core 8 is linked in the table below together with its current high-level status.

EF Core 8 Theme Feature Status
Highly requested features JSON columns In-progress
Translate element access of a JSON array Complete
Support for JSON columns in SQLite Complete
Support JSON columns in compiled models Complete
Value objects In-progress
Raw SQL queries for unmapped types Complete
Support the new BCL DateOnly and TimeOnly structs for SQL Server Complete
Support SQL Server HierarchyID in EF Core Complete
Cloud native and devices AOT and trimming with EF Core In-progress
AOT and trimming for ADO.NET In-progress
Performance Woodstar In-progress
Visual Tooling First-class T4 templates in Visual Studio Planned
EF Core Database First in Visual Studio In-progress
Developer experience Developer experience In-progress
Translate ElementAt(OrDefault) Complete
Opt-out of lazy-loading for specific navigations Complete
Lazy-loading for no-tracking queries Complete
Reverse engineer Synapse and Dynamics 365 TDS Complete
Set MaxLength on TPH discriminator property by convention Complete
Translate ToString() on a string column Complete
Generic overload of ConventionSetBuilder.Remove Complete
Lookup tracked entities by primary key, alternate key, or foreign key Complete
Allow UseSequence and HiLo on non-key properties Complete
Pass query tracking behavior to materialization interceptor Complete
Use case-insensitive string key comparisons on SQL Server Complete
Allow value converters to change the DbType Complete
Resolve application services in EF services Complete
Numeric rowersion properties automatically convert to binary Complete
Allow transfer of ownership of DbConnection from application to DbContext Complete
Provide more information when 'No DbContext was found' error is generated Complete

Burndown for EF8

This is the burndown chart the team uses internally to track progress on EF Core 8.

EF8 Burndown
  • The upper chart shows work committed for EF8
  • The lower chart shows work completed for EF8
  • On each chart:
    • Enhancements are in green and are shown at the bottom
    • Bugs are in red and are stacked in the middle
    • Other issues are in blue and stacked at the top

EF Core 7.0.4

EF Core 7.0.4 is available on NuGet now. This is a patch release of EF Core 7 containing only important bug fixes:

And for Microsoft.Data.Sqlite:

EF Core 6.0.15

EF Core 6.0.15 is available on NuGet now. This is a patch release of EF Core 6 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 6.0.14.

Pull requests merged since the last update

Community contributions

Many thanks to all our contributors!

EF Core

Builds to use

  • The daily builds are the most up-to-date available.
    • The daily builds now contain all issues merged for 7.0.x patch releases, as well as new code to be released in EF8 previews.
    • The daily builds work on both .NET 6 and .NET 7.
  • Preview: EF Core 8 Preview 2
    • Preview releases lag behind the daily build. We recommend using the daily builds whenever possible.
  • Current: EF Core 7.0.4
  • LTS: EF Core 6.0.15

Releases

See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.

Weekly/biweekly updates from previous years

Feedback

Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.

@ajcvickers
Copy link
Member Author

April 13, 2023

Expand to see status from this week...

Highlights

EF Core 8 (EF8) Preview 3 is on NuGet now! No big features in this preview, but some nice smaller enhancements:

EF Core 7.0.5 is also on NuGet now, with four important bug fixes.

Community Standup: Using hierarchical data in SQL Server and PostgreSQL with EF Core

In the latest .NET Data Community Standup, the .NET Data Access Team demonstrated mapping hierarchical data structures to relational databases using EF Core. This included using “hierarchyid” on SQL Server/Azure SQL and “ltree” on PostgresSQL, with demos using a family tree structure. EF Core is used to write LINQ queries against the hierarchy to find ancestors and descendants in various ways, as well as perform manipulation of subtrees for updates. And, as always, we answered questions from the live audience.

You can watch all .NET Data Community Standups on YouTube. We live-stream every other Wednesday to Twitch, YouTube, and Twitter. Comment on GitHub with ideas for guests, demos, or anything else you want to see.

EF Core 8 (EF8)

EF Core 8 (EF8) will be the next release after EF Core 7.0. It will be released alongside .NET 8 in November 2023.

The EF Core 8 Plan is available publicly in our documentation. As always, feedback is greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.

Each high-level area for EF Core 8 is linked in the table below together with its current high-level status.

EF Core 8 Theme Feature Status
Highly requested features JSON columns In-progress
Translate element access of a JSON array Complete
Support for JSON columns in SQLite Complete
Support JSON columns in compiled models Complete
Value objects In-progress
Raw SQL queries for unmapped types Complete
Support the new BCL DateOnly and TimeOnly structs for SQL Server Complete
Support SQL Server HierarchyID in EF Core Complete
Cloud native and devices AOT and trimming with EF Core In-progress
AOT and trimming for ADO.NET In-progress
Performance Woodstar In-progress
Visual Tooling First-class T4 templates in Visual Studio Planned
EF Core Database First in Visual Studio In-progress
Developer experience Developer experience In-progress
Translate ElementAt(OrDefault) Complete
Opt-out of lazy-loading for specific navigations Complete
Lazy-loading for no-tracking queries Complete
Reverse engineer Synapse and Dynamics 365 TDS Complete
Set MaxLength on TPH discriminator property by convention Complete
Translate ToString() on a string column Complete
Generic overload of ConventionSetBuilder.Remove Complete
Lookup tracked entities by primary key, alternate key, or foreign key Complete
Allow UseSequence and HiLo on non-key properties Complete
Pass query tracking behavior to materialization interceptor Complete
Use case-insensitive string key comparisons on SQL Server Complete
Allow value converters to change the DbType Complete
Resolve application services in EF services Complete
Numeric rowersion properties automatically convert to binary Complete
Allow transfer of ownership of DbConnection from application to DbContext Complete
Provide more information when 'No DbContext was found' error is generated Complete

Burndown for EF8

This is the burndown chart the team uses internally to track progress on EF Core 8.

EF8 Burndown
  • The upper chart shows work committed for EF8
  • The lower chart shows work completed for EF8
  • On each chart:
    • Enhancements are in green and are shown at the bottom
    • Bugs are in red and are stacked in the middle
    • Other issues are in blue and stacked at the top

EF Core 8 Preview 3

EF Core 8 (EF8) Preview 3 is available from NuGet

Preview 3 contains the following new features:

In addition, Preview 2 contains the following features from Previews 1 and 2:

See GitHub for all issues resolved in Preview 1, Preview 2, and Preview 3.

EF Core 7.0.5

EF Core 7.0.5 is available on NuGet now. This is a patch release of EF Core 7 containing only important bug fixes:

EF Core 6.0.16

EF Core 6.0.16 is available on NuGet now. This is a patch release of EF Core 6 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 6.0.15.

Pull requests merged since the last update

Community contributions

Many thanks to all our contributors!

EF Core

Microsoft.Data.Sqlite

Builds to use

  • The daily builds are the most up-to-date available.
    • The daily builds now contain all issues merged for 7.0.x patch releases, as well as new code to be released in EF8 previews.
    • The daily builds work on both .NET 6 and .NET 7.
  • Preview: EF Core 8 Preview 3
    • Preview releases lag behind the daily build. We recommend using the daily builds whenever possible.
  • Current: EF Core 7.0.5
  • LTS: EF Core 6.0.16

Releases

See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.

Weekly/biweekly updates from previous years

Feedback

Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.

@ajcvickers
Copy link
Member Author

April 27, 2023

Expand to see status from this week...

Highlights

Several features merged this week ready for EF8/.NET 8 preview 4:

  • Contains queries are now parameterized in a way that doesn't pollute the database query cache. (#13617)
  • Collections of primitive values can be mapped and queried in JSON documents. (#29427)
  • Primitive collections can be used in many other LINQ queries. (#30426)
  • Microsoft.Data.Sqlite can now be trimmed for AOT with no warnings. (#29725)

For example, this LINQ query using Contains:

var ids = new[] { 7, 27, 345, 2, 90, 567 };
var users = await context.Users.Where(u => ids.Contains(u.Id)).ToListAsync();

is now translated to the following SQL on recent versions of SQL Server:

SELECT [u].[Id], [u].[Name]
FROM [Users] AS [u]
WHERE EXISTS (
    SELECT 1
    FROM OpenJson(@__ids_0) AS [i]
    WHERE CAST([i].[value] AS int) = [u].[Id])

Where the parameter @__ids_0 is [7,27,345,2,90,567].

Community Standup: EF Core Internals – Model Building

In the latest .NET Data Community Standup, the .NET Data Access team digs into the EF Core internals for building a model. EF models are built using a combination of three mechanisms: conventions, mapping attributes, and the model builder API. We explain each of these mechanisms and show how they interact. We also cover how models are cached, and ways in which that caching can be controlled. And, as always, we answered your questions live!

You can watch all .NET Data Community Standups on YouTube. We live-stream every other Wednesday to Twitch, YouTube, and Twitter. Comment on GitHub with ideas for guests, demos, or anything else you want to see.

EF Core 8 (EF8)

EF Core 8 (EF8) will be the next release after EF Core 7.0. It will be released alongside .NET 8 in November 2023.

The EF Core 8 Plan is available publicly in our documentation. As always, feedback is greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.

Each high-level area for EF Core 8 is linked in the table below together with its current high-level status.

EF Core 8 Theme Feature Status
Highly requested features JSON columns In-progress
Translate element access of a JSON array Complete
Support for JSON columns in SQLite Complete
Support JSON columns in compiled models Complete
Map collections of primitive types to JSON column in relational database Complete
Optimize update path for single property element Complete
Use -> and ->> in SQLite instead of json_extract Complete
Value objects In-progress
Raw SQL queries for unmapped types Complete
Support the new BCL DateOnly and TimeOnly structs for SQL Server Complete
Support SQL Server HierarchyID in EF Core Complete
Cloud native and devices AOT and trimming with EF Core In-progress
AOT and trimming for ADO.NET In-progress
NativeAOT/trimming compatibility for Microsoft.Data.Sqlite Complete
Performance Woodstar In-progress
Contains translated to parameterized IN queries Complete
Visual Tooling First-class T4 templates in Visual Studio Planned
EF Core Database First in Visual Studio In-progress
Developer experience Developer experience In-progress
Support querying over primitive collections Complete
Remove unneeded parentheses in SQL queries Complete
Translate ElementAt(OrDefault) Complete
Opt-out of lazy-loading for specific navigations Complete
Lazy-loading for no-tracking queries Complete
Reverse engineer Synapse and Dynamics 365 TDS Complete
Set MaxLength on TPH discriminator property by convention Complete
Translate ToString() on a string column Complete
Generic overload of ConventionSetBuilder.Remove Complete
Lookup tracked entities by primary key, alternate key, or foreign key Complete
Allow UseSequence and HiLo on non-key properties Complete
Pass query tracking behavior to materialization interceptor Complete
Use case-insensitive string key comparisons on SQL Server Complete
Allow value converters to change the DbType Complete
Resolve application services in EF services Complete
Numeric rowersion properties automatically convert to binary Complete
Allow transfer of ownership of DbConnection from application to DbContext Complete
Provide more information when 'No DbContext was found' error is generated Complete

Burndown for EF8

This is the burndown chart the team uses internally to track progress on EF Core 8.

EF8 Burndown
  • The upper chart shows work committed for EF8
  • The lower chart shows work completed for EF8
  • On each chart:
    • Enhancements are in green and are shown at the bottom
    • Bugs are in red and are stacked in the middle
    • Other issues are in blue and stacked at the top

EF Core 8 Preview 3

EF Core 8 (EF8) Preview 3 is available from NuGet

Preview 3 contains the following new features:

In addition, Preview 2 contains the following features from Previews 1 and 2:

See GitHub for all issues resolved in Preview 1, Preview 2, and Preview 3.

EF Core 7.0.5

EF Core 7.0.5 is available on NuGet now. This is a patch release of EF Core 7 containing only important bug fixes:

EF Core 6.0.16

EF Core 6.0.16 is available on NuGet now. This is a patch release of EF Core 6 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 6.0.15.

Pull requests merged since the last update

Community contributions

Many thanks to all our contributors!

EF Core

Microsoft.Data.Sqlite

Builds to use

  • The daily builds are the most up-to-date available.
    • The daily builds now contain all issues merged for 7.0.x patch releases, as well as new code to be released in EF8 previews.
    • The daily builds work on both .NET 6 and .NET 7.
  • Preview: EF Core 8 Preview 3
    • Preview releases lag behind the daily build. We recommend using the daily builds whenever possible.
  • Current: EF Core 7.0.5
  • LTS: EF Core 6.0.16

Releases

See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.

Weekly/biweekly updates from previous years

Feedback

Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.

@ajcvickers
Copy link
Member Author

May 11, 2023

Expand to see status from this week...

Highlights

Merged this week: massively improved data type detection when scaffolding a DbContext and entity types from a SQLite database. SQLite databases have very limited (and strange) support for the type of data stored in a column. In addition to using column metadata, EF Core now samples data in the column to determine which .NET type to use. This means columns with date/time types, GUIDs, booleans, etc. are correctly detected and entity types are scaffolded with appropriate property types.

Community Standup: Azure SQL Database and SQL Server 2022 - What’s new for developers

In the latest .NET Data Community Standup, Silvano Coriani joins the .NET Data Access team to discuss some of the new capabilities introduced on both SQL Server and our Azure services that have an impact on app development. This includes:

  • T-SQL and IQP enhancements
  • Local Development Experience
  • JSON enhancements

You can watch all .NET Data Community Standups on YouTube. We live-stream every other Wednesday to Twitch, YouTube, and Twitter. Comment on GitHub with ideas for guests, demos, or anything else you want to see.

EF Core 8 (EF8)

EF Core 8 (EF8) will be the next release after EF Core 7.0. It will be released alongside .NET 8 in November 2023.

The EF Core 8 Plan is available publicly in our documentation. As always, feedback is greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.

Each high-level area for EF Core 8 is linked in the table below together with its current high-level status.

EF Core 8 Theme Feature Status
Highly requested features JSON columns In-progress
Translate element access of a JSON array Complete
Support for JSON columns in SQLite Complete
Support JSON columns in compiled models Complete
Map collections of primitive types to JSON column in relational database Complete
Map collections of primitive types to JSON column in relational database Complete
Optimize update path for single property element Complete
Use -> and ->> in SQLite instead of json_extract Complete
Value objects In-progress
Raw SQL queries for unmapped types Complete
Support the new BCL DateOnly and TimeOnly structs for SQL Server Complete
Support SQL Server HierarchyID in EF Core Complete
Cloud native and devices AOT and trimming with EF Core In-progress
AOT and trimming for ADO.NET In-progress
NativeAOT/trimming compatibility for Microsoft.Data.Sqlite Complete
Performance Woodstar In-progress
Contains translated to parameterized IN queries Complete
Visual Tooling First-class T4 templates in Visual Studio Planned
EF Core Database First in Visual Studio In-progress
Developer experience Developer experience In-progress
Support querying over primitive collections Complete
Remove unneeded parentheses in SQL queries Complete
Translate ElementAt(OrDefault) Complete
Opt-out of lazy-loading for specific navigations Complete
Lazy-loading for no-tracking queries Complete
Reverse engineer Synapse and Dynamics 365 TDS Complete
Set MaxLength on TPH discriminator property by convention Complete
Translate ToString() on a string column Complete
Generic overload of ConventionSetBuilder.Remove Complete
Lookup tracked entities by primary key, alternate key, or foreign key Complete
Allow UseSequence and HiLo on non-key properties Complete
Pass query tracking behavior to materialization interceptor Complete
Use case-insensitive string key comparisons on SQL Server Complete
Allow value converters to change the DbType Complete
Resolve application services in EF services Complete
Numeric rowersion properties automatically convert to binary Complete
Allow transfer of ownership of DbConnection from application to DbContext Complete
Provide more information when 'No DbContext was found' error is generated Complete

Burndown for EF8

This is the burndown chart the team uses internally to track progress on EF Core 8.

EF8 Burndown
  • The upper chart shows work committed for EF8
  • The lower chart shows work completed for EF8
  • On each chart:
    • Enhancements are in green and are shown at the bottom
    • Bugs are in red and are stacked in the middle
    • Other issues are in blue and stacked at the top

EF Core 8 Preview 3

EF Core 8 (EF8) Preview 3 is available from NuGet

Preview 3 contains the following new features:

In addition, Preview 2 contains the following features from Previews 1 and 2:

See GitHub for all issues resolved in Preview 1, Preview 2, and Preview 3.

EF Core 7.0.5

EF Core 7.0.5 is available on NuGet now. This is a patch release of EF Core 7 containing only important bug fixes:

EF Core 6.0.16

EF Core 6.0.16 is available on NuGet now. This is a patch release of EF Core 6 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 6.0.15.

Pull requests merged since the last update

Community contributions

Many thanks to all our contributors!

EF Core

Builds to use

  • The daily builds are the most up-to-date available.
    • The daily builds now contain all issues merged for 7.0.x patch releases, as well as new code to be released in EF8 previews.
    • The daily builds work on both .NET 6 and .NET 7.
  • Preview: EF Core 8 Preview 3
    • Preview releases lag behind the daily build. We recommend using the daily builds whenever possible.
  • Current: EF Core 7.0.5
  • LTS: EF Core 6.0.16

Releases

See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.

Weekly/biweekly updates from previous years

Feedback

Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.

@ajcvickers
Copy link
Member Author

May 25, 2023

Expand to see status from this week...

Highlights

EF Core 8 Preview 4 is on NuGet now!

Here's an example of a query that can now be translated using the new support for primitive collections. This query will tell us how common it is for a dog walk to coincide with a visit to the nearest pub:

LINQ query using primitive collections

Which translates to the following on SQL Server:

SQL query using primitive collections

See the What's New documentation and blog post for more examples.

Community Standup: Collections of primitive values in EF Core

In the latest .NET Data Community Standup, the .NET Data Access team dive into new support for collections of primitive values, just released in EF Core 8 Preview 4. Collections of a primitive type can now be used as properties of an entity type and will be mapped to a JSON column in the relational database. In addition, parameters of primitive values can be passed to the database. In either case, the native JSON processing capabilities of the database are then used to exact and manipulate the primitive values, just as if they were in a table. This opens up powerful query possibilities, as well as optimizations to common problems such as translating queries that use Contains.

You can watch all .NET Data Community Standups on YouTube. We live-stream every other Wednesday to Twitch, YouTube, and Twitter. Comment on GitHub with ideas for guests, demos, or anything else you want to see.

EF Core 8 (EF8)

EF Core 8 (EF8) will be the next release after EF Core 7.0. It will be released alongside .NET 8 in November 2023.

The EF Core 8 Plan is available publicly in our documentation. As always, feedback is greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.

Each high-level area for EF Core 8 is linked in the table below together with its current high-level status.

EF Core 8 Theme Feature Status
Highly requested features JSON columns In-progress
Translate element access of a JSON array Complete
Support for JSON columns in SQLite Complete
Support JSON columns in compiled models Complete
Map collections of primitive types to JSON column in relational database Complete
Map collections of primitive types to JSON column in relational database Complete
Optimize update path for single property element Complete
Use -> and ->> in SQLite instead of json_extract Complete
Value objects In-progress
Raw SQL queries for unmapped types Complete
Support the new BCL DateOnly and TimeOnly structs for SQL Server Complete
Support SQL Server HierarchyID in EF Core Complete
Cloud native and devices AOT and trimming with EF Core In-progress
AOT and trimming for ADO.NET In-progress
NativeAOT/trimming compatibility for Microsoft.Data.Sqlite Complete
Performance Woodstar In-progress
Contains translated to parameterized IN queries Complete
Visual Tooling First-class T4 templates in Visual Studio Planned
EF Core Database First in Visual Studio In-progress
Developer experience Developer experience In-progress
Support querying over primitive collections Complete
Remove unneeded parentheses in SQL queries Complete
Translate ElementAt(OrDefault) Complete
Opt-out of lazy-loading for specific navigations Complete
Lazy-loading for no-tracking queries Complete
Reverse engineer Synapse and Dynamics 365 TDS Complete
Set MaxLength on TPH discriminator property by convention Complete
Translate ToString() on a string column Complete
Generic overload of ConventionSetBuilder.Remove Complete
Lookup tracked entities by primary key, alternate key, or foreign key Complete
Allow UseSequence and HiLo on non-key properties Complete
Pass query tracking behavior to materialization interceptor Complete
Use case-insensitive string key comparisons on SQL Server Complete
Allow value converters to change the DbType Complete
Resolve application services in EF services Complete
Numeric rowersion properties automatically convert to binary Complete
Allow transfer of ownership of DbConnection from application to DbContext Complete
Provide more information when 'No DbContext was found' error is generated Complete

Burndown for EF8

This is the burndown chart the team uses internally to track progress on EF Core 8.

EF8 Burndown
  • The upper chart shows work committed for EF8
  • The lower chart shows work completed for EF8
  • On each chart:
    • Enhancements are in green and are shown at the bottom
    • Bugs are in red and are stacked in the middle
    • Other issues are in blue and stacked at the top

EF Core 8 Preview 4

EF Core 8 (EF8) Preview 4 is available from NuGet

Preview 4 contains the following new features:

In addition, Preview 2 contains the following features from Previews 1, 2, and 3:

See GitHub for all issues resolved in Preview 1, Preview 2, Preview 3, and Preview 4.

EF Core 7.0.5

EF Core 7.0.5 is available on NuGet now. This is a patch release of EF Core 7 containing only important bug fixes:

EF Core 6.0.16

EF Core 6.0.16 is available on NuGet now. This is a patch release of EF Core 6 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 6.0.15.

Pull requests merged since the last update

Community contributions

Many thanks to all our contributors!

EF Core

Builds to use

  • The daily builds are the most up-to-date available.
    • The daily builds now contain all issues merged for 7.0.x patch releases, as well as new code to be released in EF8 previews.
    • The daily builds work on both .NET 6 and .NET 7.
  • Preview: EF Core 8 Preview 4
    • Preview releases lag behind the daily build. We recommend using the daily builds whenever possible.
  • Current: EF Core 7.0.5
  • LTS: EF Core 6.0.16

Releases

See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.

Weekly/biweekly updates from previous years

Feedback

Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.

@ajcvickers
Copy link
Member Author

June 22, 2023

Expand to see status from this week...

Highlights

EF Core 8 Preview 5 is on NuGet now!

Preview 5 contains the following new features:

Community Standup: Synchronizing data between the cloud and the client

In the latest .NET Data Community Standup, we talke to Erik Sink about a solution for keeping a synchronized copy of the DB (using SQLite) on the client, rather than asking data for the cloud every time. This is helpful for mobile scenarios where the connectivity may be poor, but the "rep and sync" approach can reduce the time the user spends waiting on the network. Local writes are fast, sync happens in the background. We explore how this is done efficiently, how to deal with conflict resolution, and other data sync-related concerns.

Community Standup: New CLI edition of EF Core Power Tools

In a recent .NET Data Community Standup, ErikEJ demonstrates the new CLI edition of EF Core Power Tools and shows how he used a number of community NuGet packages to improve the user experience when creating a CLI tool.

You can watch all .NET Data Community Standups on YouTube. We live-stream every other Wednesday to Twitch, YouTube, and Twitter. Comment on GitHub with ideas for guests, demos, or anything else you want to see.

EF Core 8 (EF8)

EF Core 8 (EF8) will be the next release after EF Core 7.0. It will be released alongside .NET 8 in November 2023.

The EF Core 8 Plan is available publicly in our documentation. As always, feedback is greatly appreciated. This plan is not set-in-stone; we expect it will evolve throughout the release cycle as we learn.

Each high-level area for EF Core 8 is linked in the table below together with its current high-level status.

EF Core 8 Theme Feature Status
Highly requested features JSON columns In-progress
Translate element access of a JSON array Complete
Support for JSON columns in SQLite Complete
Support JSON columns in compiled models Complete
Map collections of primitive types to JSON column in relational database Complete
Map collections of primitive types to JSON column in relational database Complete
Optimize update path for single property element Complete
Use -> and ->> in SQLite instead of json_extract Complete
Value objects In-progress
Raw SQL queries for unmapped types Complete
Support the new BCL DateOnly and TimeOnly structs for SQL Server Complete
Support SQL Server HierarchyID in EF Core Complete
Cloud native and devices AOT and trimming with EF Core In-progress
AOT and trimming for ADO.NET In-progress
NativeAOT/trimming compatibility for Microsoft.Data.Sqlite Complete
Performance Woodstar In-progress
Contains translated to parameterized IN queries Complete
Visual Tooling First-class T4 templates in Visual Studio Planned
EF Core Database First in Visual Studio In-progress
Developer experience Developer experience In-progress
Support querying over primitive collections Complete
Remove unneeded parentheses in SQL queries Complete
Translate ElementAt(OrDefault) Complete
Opt-out of lazy-loading for specific navigations Complete
Lazy-loading for no-tracking queries Complete
Reverse engineer Synapse and Dynamics 365 TDS Complete
Set MaxLength on TPH discriminator property by convention Complete
Translate ToString() on a string column Complete
Generic overload of ConventionSetBuilder.Remove Complete
Lookup tracked entities by primary key, alternate key, or foreign key Complete
Allow UseSequence and HiLo on non-key properties Complete
Pass query tracking behavior to materialization interceptor Complete
Use case-insensitive string key comparisons on SQL Server Complete
Allow value converters to change the DbType Complete
Resolve application services in EF services Complete
Numeric rowersion properties automatically convert to binary Complete
Allow transfer of ownership of DbConnection from application to DbContext Complete
Provide more information when 'No DbContext was found' error is generated Complete

Burndown for EF8

This is the burndown chart the team uses internally to track progress on EF Core 8.

EF8 Burndown
  • The upper chart shows work committed for EF8
  • The lower chart shows work completed for EF8
  • On each chart:
    • Enhancements are in green and are shown at the bottom
    • Bugs are in red and are stacked in the middle
    • Other issues are in blue and stacked at the top

EF Core 8 Preview 5

EF Core 8 (EF8) Preview 5 is available from NuGet

Preview 5 contains the following new features:

In addition, Preview 2 contains the following features from Previews 1, 2, 3, and 4:

See GitHub for all issues resolved in Preview 1, Preview 2, Preview 3, Preview 4, and Preview 5.

EF Core 7.0.8

EF Core 7.0.8 is available on NuGet now.

This is a patch release of EF Core 7.0 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 7.0.7.

EF Core 7.0.7 was also release since the last new update. It contains the following important bug fixes:

EF Core 6.0.19

EF Core 6.0.19 is available on NuGet now. This is a patch release of EF Core 6 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 6.0.16.

Pull requests merged since the last update

Community contributions

Many thanks to all our contributors!

EF Core

Builds to use

  • The daily builds are the most up-to-date available.
    • The daily builds now contain all issues merged for 7.0.x patch releases, as well as new code to be released in EF8 previews.
    • The daily builds work on both .NET 6 and .NET 7.
  • Preview: EF Core 8 Preview 5
    • Preview releases lag behind the daily build. We recommend using the daily builds whenever possible.
  • Current: EF Core 7.0.8
  • LTS: EF Core 6.0.19

Releases

See GitHub Releases and EF Core releases and planning (Roadmap) in our documentation for full details.

Weekly/biweekly updates from previous years

Feedback

Comments are disabled on this issue to reduce noise. Please use the related discussion issue for any comments on these status updates.

@ajcvickers ajcvickers unpinned this issue Sep 13, 2023
@ajcvickers ajcvickers closed this as not planned Won't fix, can't repro, duplicate, stale Feb 16, 2024
@ajcvickers ajcvickers added the closed-no-further-action The issue is closed and no further action is planned. label May 15, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
closed-no-further-action The issue is closed and no further action is planned.
Projects
None yet
Development

No branches or pull requests

1 participant