From ccf22a4a91e52152613c9dcc3e035e78b8f07635 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Wed, 4 Mar 2026 02:02:29 +0000
Subject: [PATCH 1/8] Initial plan
From 76389626ffd33c024425669a53f9b35418183f00 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Wed, 4 Mar 2026 02:06:13 +0000
Subject: [PATCH 2/8] Document breaking change: EF tools no longer support .NET
Framework projects (#37739)
Co-authored-by: AndriySvyryd <6539701+AndriySvyryd@users.noreply.github.com>
---
.../ef-core-11.0/breaking-changes.md | 31 +++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md b/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
index 6b21720370..447f1ec234 100644
--- a/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
+++ b/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
@@ -19,6 +19,7 @@ This page documents API and behavior changes that have the potential to break ex
| **Breaking change** | **Impact** |
|:--------------------------------------------------------------------------------------------------------------- | -----------|
| [Sync I/O via the Azure Cosmos DB provider has been fully removed](#cosmos-nosync) | Medium |
+| [EF tools no longer support .NET Framework projects](#ef-tools-no-netfx) | Medium |
### Medium-impact changes
@@ -43,3 +44,33 @@ Synchronous blocking on asynchronous methods ("sync-over-async") is highly disco
##### Mitigations
Convert your code to use async I/O APIs instead of sync I/O ones. For example, replace calls to `SaveChanges()` with `await SaveChangesAsync()`.
+
+
+
+#### EF tools no longer support .NET Framework projects
+
+[Tracking Issue #37739](https://github.com/dotnet/efcore/issues/37739)
+
+##### Old behavior
+
+Previously, the EF Core tools (`dotnet-ef` CLI and Package Manager Console tools) could be used with projects targeting .NET Framework. The tools packages included .NET Framework (net472) binaries and could execute commands against .NET Framework startup projects.
+
+Additionally, the `Microsoft.EntityFrameworkCore.Tools` NuGet package had a dependency on `Microsoft.EntityFrameworkCore.Design`.
+
+##### New behavior
+
+Starting with EF Core 11.0, the EF tools no longer support .NET Framework projects. If the startup project targets .NET Framework, the following error is thrown:
+
+> Startup project '<project name>' targets framework '.NETFramework'. The Entity Framework Core .NET Command-line Tools don't support .NET Framework projects. Consider updating the project to target .NET.
+
+Additionally, the `Microsoft.EntityFrameworkCore.Tools` and `Microsoft.EntityFrameworkCore.Tasks` NuGet packages no longer have a dependency on `Microsoft.EntityFrameworkCore.Design`.
+
+##### Why
+
+There was no hard dependency on the code in `Microsoft.EntityFrameworkCore.Design`, and this dependency was causing issues when using the latest `Microsoft.EntityFrameworkCore.Tools` with projects targeting older frameworks. Removing the dependency and the .NET Framework support simplifies the tools packages.
+
+##### Mitigations
+
+Update your project to target .NET (e.g., .NET 10 or later). If your project currently targets .NET Framework, see the [porting guide](/dotnet/core/porting/) for information on migrating to .NET.
+
+If you need to use EF Core tools with a .NET Framework project, use an earlier version of the tools (EF Core 10.0 or earlier).
From 509523fde13a06a718cd832a8b6fe9236129d667 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Wed, 4 Mar 2026 02:42:26 +0000
Subject: [PATCH 3/8] Split Design dependency removal into separate entry, fix
.NET Framework framing per review
Co-authored-by: AndriySvyryd <6539701+AndriySvyryd@users.noreply.github.com>
---
.../ef-core-11.0/breaking-changes.md | 41 +++++++++++++++----
1 file changed, 32 insertions(+), 9 deletions(-)
diff --git a/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md b/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
index 447f1ec234..34e3f0b6cb 100644
--- a/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
+++ b/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
@@ -19,7 +19,8 @@ This page documents API and behavior changes that have the potential to break ex
| **Breaking change** | **Impact** |
|:--------------------------------------------------------------------------------------------------------------- | -----------|
| [Sync I/O via the Azure Cosmos DB provider has been fully removed](#cosmos-nosync) | Medium |
-| [EF tools no longer support .NET Framework projects](#ef-tools-no-netfx) | Medium |
+| [EF tools no longer support .NET Framework projects](#ef-tools-no-netfx) | Low |
+| [EF tools packages no longer reference Microsoft.EntityFrameworkCore.Design](#ef-tools-no-design-dep) | Low |
### Medium-impact changes
@@ -45,6 +46,8 @@ Synchronous blocking on asynchronous methods ("sync-over-async") is highly disco
Convert your code to use async I/O APIs instead of sync I/O ones. For example, replace calls to `SaveChanges()` with `await SaveChangesAsync()`.
+### Low-impact changes
+
#### EF tools no longer support .NET Framework projects
@@ -53,24 +56,44 @@ Convert your code to use async I/O APIs instead of sync I/O ones. For example, r
##### Old behavior
-Previously, the EF Core tools (`dotnet-ef` CLI and Package Manager Console tools) could be used with projects targeting .NET Framework. The tools packages included .NET Framework (net472) binaries and could execute commands against .NET Framework startup projects.
-
-Additionally, the `Microsoft.EntityFrameworkCore.Tools` NuGet package had a dependency on `Microsoft.EntityFrameworkCore.Design`.
+Previously, the EF Core tools (`dotnet-ef` CLI and Package Manager Console tools) did not work with projects targeting .NET Framework, but the error message was unclear.
##### New behavior
-Starting with EF Core 11.0, the EF tools no longer support .NET Framework projects. If the startup project targets .NET Framework, the following error is thrown:
+Starting with EF Core 11.0, the EF tools produce a clear error message when the startup project targets .NET Framework:
> Startup project '<project name>' targets framework '.NETFramework'. The Entity Framework Core .NET Command-line Tools don't support .NET Framework projects. Consider updating the project to target .NET.
-Additionally, the `Microsoft.EntityFrameworkCore.Tools` and `Microsoft.EntityFrameworkCore.Tasks` NuGet packages no longer have a dependency on `Microsoft.EntityFrameworkCore.Design`.
-
##### Why
-There was no hard dependency on the code in `Microsoft.EntityFrameworkCore.Design`, and this dependency was causing issues when using the latest `Microsoft.EntityFrameworkCore.Tools` with projects targeting older frameworks. Removing the dependency and the .NET Framework support simplifies the tools packages.
+The EF Core tools already did not work with .NET Framework projects in EF Core 10.0, but the error produced was not clear. This change provides a more informative error message to help users understand the issue.
##### Mitigations
Update your project to target .NET (e.g., .NET 10 or later). If your project currently targets .NET Framework, see the [porting guide](/dotnet/core/porting/) for information on migrating to .NET.
-If you need to use EF Core tools with a .NET Framework project, use an earlier version of the tools (EF Core 10.0 or earlier).
+
+
+#### EF tools packages no longer reference Microsoft.EntityFrameworkCore.Design
+
+[Tracking Issue #37739](https://github.com/dotnet/efcore/issues/37739)
+
+##### Old behavior
+
+Previously, the `Microsoft.EntityFrameworkCore.Tools` and `Microsoft.EntityFrameworkCore.Tasks` NuGet packages had a dependency on `Microsoft.EntityFrameworkCore.Design`.
+
+##### New behavior
+
+Starting with EF Core 11.0, the `Microsoft.EntityFrameworkCore.Tools` and `Microsoft.EntityFrameworkCore.Tasks` NuGet packages no longer have a dependency on `Microsoft.EntityFrameworkCore.Design`.
+
+##### Why
+
+There was no hard dependency on the code in `Microsoft.EntityFrameworkCore.Design`, and this dependency was causing issues when using the latest `Microsoft.EntityFrameworkCore.Tools` with projects targeting older frameworks.
+
+##### Mitigations
+
+If your project relies on `Microsoft.EntityFrameworkCore.Design` being brought in transitively through the tools packages, add a direct reference to it in your project:
+
+```xml
+
+```
From 175d256738ed96e4b7e81dfd76adda903debc01e Mon Sep 17 00:00:00 2001
From: Andriy Svyryd
Date: Tue, 3 Mar 2026 19:50:55 -0800
Subject: [PATCH 4/8] Update
entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
.../core/what-is-new/ef-core-11.0/breaking-changes.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md b/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
index 34e3f0b6cb..41747dd943 100644
--- a/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
+++ b/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
@@ -20,7 +20,7 @@ This page documents API and behavior changes that have the potential to break ex
|:--------------------------------------------------------------------------------------------------------------- | -----------|
| [Sync I/O via the Azure Cosmos DB provider has been fully removed](#cosmos-nosync) | Medium |
| [EF tools no longer support .NET Framework projects](#ef-tools-no-netfx) | Low |
-| [EF tools packages no longer reference Microsoft.EntityFrameworkCore.Design](#ef-tools-no-design-dep) | Low |
+| [EF tools packages no longer reference Microsoft.EntityFrameworkCore.Design](#ef-tools-no-design-dep) | Low |
### Medium-impact changes
From 4d5bc12361eee758706ed5de44e10aabddba2663 Mon Sep 17 00:00:00 2001
From: Andriy Svyryd
Date: Tue, 3 Mar 2026 19:52:55 -0800
Subject: [PATCH 5/8] Update
entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
.../core/what-is-new/ef-core-11.0/breaking-changes.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md b/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
index 41747dd943..2cc814f7e3 100644
--- a/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
+++ b/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
@@ -95,5 +95,5 @@ There was no hard dependency on the code in `Microsoft.EntityFrameworkCore.Desig
If your project relies on `Microsoft.EntityFrameworkCore.Design` being brought in transitively through the tools packages, add a direct reference to it in your project:
```xml
-
+
```
From 4bae179e547808a4790fbf386b3c41b62ecc3b4f Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Wed, 4 Mar 2026 03:57:27 +0000
Subject: [PATCH 6/8] Fix heading levels to match established breaking-changes
page structure
Co-authored-by: AndriySvyryd <6539701+AndriySvyryd@users.noreply.github.com>
---
.../ef-core-11.0/breaking-changes.md | 34 +++++++++----------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md b/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
index 2cc814f7e3..637d6168ab 100644
--- a/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
+++ b/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
@@ -22,75 +22,75 @@ This page documents API and behavior changes that have the potential to break ex
| [EF tools no longer support .NET Framework projects](#ef-tools-no-netfx) | Low |
| [EF tools packages no longer reference Microsoft.EntityFrameworkCore.Design](#ef-tools-no-design-dep) | Low |
-### Medium-impact changes
+## Medium-impact changes
-#### Sync I/O via the Azure Cosmos DB provider has been fully removed
+### Sync I/O via the Azure Cosmos DB provider has been fully removed
[Tracking Issue #37059](https://github.com/dotnet/efcore/issues/37059)
-##### Old behavior
+#### Old behavior
Synchronous I/O via the Azure Cosmos DB provider has been unsupported since EF 9.0 ([note](/ef/core/what-is-new/ef-core-9.0/breaking-changes#cosmos-nosync)); calling any sync I/O API - like `ToList` or `SaveChanges` threw an exception, unless a special opt-in was configured. When the opt-in was configured, sync I/O APIs worked as before, causing the provider to perform "sync-over-async" blocking against the Azure Cosmos DB SDK, which could result in deadlocks and other performance issues.
-##### New behavior
+#### New behavior
Starting with EF Core 11.0, EF now always throws when a synchronous I/O API is called. There is no way to opt back into using sync I/O APIs.
-##### Why
+#### Why
Synchronous blocking on asynchronous methods ("sync-over-async") is highly discouraged, and can lead to deadlock and other performance problems. Since the Azure Cosmos DB SDK only supports async methods, so does the EF Cosmos provider.
-##### Mitigations
+#### Mitigations
Convert your code to use async I/O APIs instead of sync I/O ones. For example, replace calls to `SaveChanges()` with `await SaveChangesAsync()`.
-### Low-impact changes
+## Low-impact changes
-#### EF tools no longer support .NET Framework projects
+### EF tools no longer support .NET Framework projects
[Tracking Issue #37739](https://github.com/dotnet/efcore/issues/37739)
-##### Old behavior
+#### Old behavior
Previously, the EF Core tools (`dotnet-ef` CLI and Package Manager Console tools) did not work with projects targeting .NET Framework, but the error message was unclear.
-##### New behavior
+#### New behavior
Starting with EF Core 11.0, the EF tools produce a clear error message when the startup project targets .NET Framework:
> Startup project '<project name>' targets framework '.NETFramework'. The Entity Framework Core .NET Command-line Tools don't support .NET Framework projects. Consider updating the project to target .NET.
-##### Why
+#### Why
The EF Core tools already did not work with .NET Framework projects in EF Core 10.0, but the error produced was not clear. This change provides a more informative error message to help users understand the issue.
-##### Mitigations
+#### Mitigations
Update your project to target .NET (e.g., .NET 10 or later). If your project currently targets .NET Framework, see the [porting guide](/dotnet/core/porting/) for information on migrating to .NET.
-#### EF tools packages no longer reference Microsoft.EntityFrameworkCore.Design
+### EF tools packages no longer reference Microsoft.EntityFrameworkCore.Design
[Tracking Issue #37739](https://github.com/dotnet/efcore/issues/37739)
-##### Old behavior
+#### Old behavior
Previously, the `Microsoft.EntityFrameworkCore.Tools` and `Microsoft.EntityFrameworkCore.Tasks` NuGet packages had a dependency on `Microsoft.EntityFrameworkCore.Design`.
-##### New behavior
+#### New behavior
Starting with EF Core 11.0, the `Microsoft.EntityFrameworkCore.Tools` and `Microsoft.EntityFrameworkCore.Tasks` NuGet packages no longer have a dependency on `Microsoft.EntityFrameworkCore.Design`.
-##### Why
+#### Why
There was no hard dependency on the code in `Microsoft.EntityFrameworkCore.Design`, and this dependency was causing issues when using the latest `Microsoft.EntityFrameworkCore.Tools` with projects targeting older frameworks.
-##### Mitigations
+#### Mitigations
If your project relies on `Microsoft.EntityFrameworkCore.Design` being brought in transitively through the tools packages, add a direct reference to it in your project:
From 237d7a52ad0ff7ba309c221511b377550659294f Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Wed, 4 Mar 2026 21:07:21 +0000
Subject: [PATCH 7/8] Move .NET Framework breaking change entry from EF Core
11.0 to 9.0
Co-authored-by: AndriySvyryd <6539701+AndriySvyryd@users.noreply.github.com>
---
.../ef-core-11.0/breaking-changes.md | 25 -------------------
.../ef-core-9.0/breaking-changes.md | 23 +++++++++++++++++
2 files changed, 23 insertions(+), 25 deletions(-)
diff --git a/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md b/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
index 637d6168ab..13488484c5 100644
--- a/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
+++ b/entity-framework/core/what-is-new/ef-core-11.0/breaking-changes.md
@@ -19,7 +19,6 @@ This page documents API and behavior changes that have the potential to break ex
| **Breaking change** | **Impact** |
|:--------------------------------------------------------------------------------------------------------------- | -----------|
| [Sync I/O via the Azure Cosmos DB provider has been fully removed](#cosmos-nosync) | Medium |
-| [EF tools no longer support .NET Framework projects](#ef-tools-no-netfx) | Low |
| [EF tools packages no longer reference Microsoft.EntityFrameworkCore.Design](#ef-tools-no-design-dep) | Low |
## Medium-impact changes
@@ -48,30 +47,6 @@ Convert your code to use async I/O APIs instead of sync I/O ones. For example, r
## Low-impact changes
-
-
-### EF tools no longer support .NET Framework projects
-
-[Tracking Issue #37739](https://github.com/dotnet/efcore/issues/37739)
-
-#### Old behavior
-
-Previously, the EF Core tools (`dotnet-ef` CLI and Package Manager Console tools) did not work with projects targeting .NET Framework, but the error message was unclear.
-
-#### New behavior
-
-Starting with EF Core 11.0, the EF tools produce a clear error message when the startup project targets .NET Framework:
-
-> Startup project '<project name>' targets framework '.NETFramework'. The Entity Framework Core .NET Command-line Tools don't support .NET Framework projects. Consider updating the project to target .NET.
-
-#### Why
-
-The EF Core tools already did not work with .NET Framework projects in EF Core 10.0, but the error produced was not clear. This change provides a more informative error message to help users understand the issue.
-
-#### Mitigations
-
-Update your project to target .NET (e.g., .NET 10 or later). If your project currently targets .NET Framework, see the [porting guide](/dotnet/core/porting/) for information on migrating to .NET.
-
### EF tools packages no longer reference Microsoft.EntityFrameworkCore.Design
diff --git a/entity-framework/core/what-is-new/ef-core-9.0/breaking-changes.md b/entity-framework/core/what-is-new/ef-core-9.0/breaking-changes.md
index e3c7a8156b..3752e2d8e8 100644
--- a/entity-framework/core/what-is-new/ef-core-9.0/breaking-changes.md
+++ b/entity-framework/core/what-is-new/ef-core-9.0/breaking-changes.md
@@ -33,6 +33,7 @@ EF Core 9 targets .NET 8. This means that existing applications that target .NET
| [SqlFunctionExpression's nullability arguments' arity validated](#sqlfunctionexpression-nullability) | Low |
| [`ToString()` method now returns empty string for `null` instances](#nullable-tostring) | Low |
| [Shared framework dependencies were updated to 9.0.x](#shared-framework-dependencies) | Low |
+| [EF tools no longer support .NET Framework projects](#ef-tools-no-netfx) | Low |
## High-impact changes
@@ -333,6 +334,28 @@ The matching dependency versions contain the latest security fixes and using the
Change your app to target net9.0 to get the previous behavior.
+
+
+### EF tools no longer support .NET Framework projects
+
+[Tracking Issue #37739](https://github.com/dotnet/efcore/issues/37739)
+
+#### Old behavior
+
+Previously, the EF Core tools (`dotnet-ef` CLI and Package Manager Console tools) worked with projects targeting .NET Framework.
+
+#### New behavior
+
+Starting with EF Core 9.0, the EF Core tools no longer work with projects targeting .NET Framework. The tools produce an error when the startup project targets .NET Framework.
+
+#### Why
+
+EF Core 9 targets .NET 8. The EF Core tools require the startup project to target a compatible .NET version and no longer support .NET Framework projects.
+
+#### Mitigations
+
+Update your project to target .NET (e.g., .NET 8 or later). If your project currently targets .NET Framework, see the [porting guide](/dotnet/core/porting/) for information on migrating to .NET.
+
## Azure Cosmos DB breaking changes
Extensive work has gone into making the Azure Cosmos DB provider better in 9.0. The changes include a number of high-impact breaking changes; if you are upgrading an existing application, please read the following carefully.
From f55263e5a10196c6517ce3b0c1387f899d5b5a25 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Wed, 4 Mar 2026 21:17:35 +0000
Subject: [PATCH 8/8] Update tracking issue to #37745 and revise Why section
for .NET Framework breaking change
Co-authored-by: AndriySvyryd <6539701+AndriySvyryd@users.noreply.github.com>
---
.../core/what-is-new/ef-core-9.0/breaking-changes.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/entity-framework/core/what-is-new/ef-core-9.0/breaking-changes.md b/entity-framework/core/what-is-new/ef-core-9.0/breaking-changes.md
index 3752e2d8e8..5503bb5c2f 100644
--- a/entity-framework/core/what-is-new/ef-core-9.0/breaking-changes.md
+++ b/entity-framework/core/what-is-new/ef-core-9.0/breaking-changes.md
@@ -338,7 +338,7 @@ Change your app to target net9.0 to get the previous behavior.
### EF tools no longer support .NET Framework projects
-[Tracking Issue #37739](https://github.com/dotnet/efcore/issues/37739)
+[Tracking Issue #37745](https://github.com/dotnet/efcore/issues/37745)
#### Old behavior
@@ -350,7 +350,7 @@ Starting with EF Core 9.0, the EF Core tools no longer work with projects target
#### Why
-EF Core 9 targets .NET 8. The EF Core tools require the startup project to target a compatible .NET version and no longer support .NET Framework projects.
+The current version of EF Core tools works with all supported EF Core versions and there are no longer any supported EF Core versions that work on .NET Framework.
#### Mitigations