From 151738364e19c0154e7b5dcced2a7aa3b0523a9c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 30 Jun 2026 20:08:46 +0000 Subject: [PATCH 1/5] Update SQLite breaking change guidance --- .../ef-core-11.0/breaking-changes.md | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 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 7b25a22678..f3eb8b747e 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 @@ -2,7 +2,7 @@ title: Breaking changes in EF Core 11 (EF11) - EF Core description: List of breaking changes introduced in Entity Framework Core 11 (EF11) author: roji -ms.date: 06/11/2026 +ms.date: 06/30/2026 uid: core/what-is-new/ef-core-11.0/breaking-changes --- @@ -562,6 +562,10 @@ Review the following cases, which may require action in some applications: - **Platform (RID) coverage.** SQLite3 Multiple Ciphers doesn't currently include native binaries for every runtime identifier covered by `SourceGear.sqlite3`; for example, `linux-riscv64`, `linux-musl-riscv64`, and `linux-musl-s390x` aren't included. If you target a platform that the new bundle doesn't include, the native library may fail to load at runtime. In that case, revert to the standard build using the package references below. +- **Linux glibc requirement and macOS/Linux opt-out.** The bundled `e_sqlite3mc` library is prebuilt native code. On Linux, it currently requires glibc 2.33 or later; on older distributions, loading it can fail at runtime with an error such as `GLIBC_2.33 not found`. On macOS and Linux, if you need to avoid the bundled library altogether (for example, because of runtime compatibility or because you need to use the system SQLite library), switch to the `.Core` packages and either: + - Use `SQLitePCLRaw.bundle_e_sqlite3` to keep using the standard `e_sqlite3` bundled build, as shown below. + - Use `SQLitePCLRaw.provider.sqlite3` together with a system-installed or self-built SQLite library that matches your deployment environment, and initialize `SQLitePCL.raw.SetProvider(new SQLitePCL.SQLite3Provider_sqlite3());`. + - **Reserved encryption keywords.** SQLite3 Multiple Ciphers reserves certain connection-string/URI parameters and PRAGMAs (such as `key`, `hexkey`, and `cipher`) for encryption configuration. This is unlikely to affect typical applications, but if you happened to use these names for unrelated purposes, behavior may differ. - **Double-quoted string literal support.** `e_sqlite3mc` doesn't include SQLite's legacy support for double-quoted string literals. If your SQL uses double quotes for string values, change it to use single quotes; double quotes should be used only for identifiers. Review raw SQL in your application (for example, SQL passed to `FromSql`, `ExecuteSql`, or migrations operations), and use SQL logging or integration tests to identify affected commands. @@ -579,3 +583,23 @@ For EF Core, reference `Microsoft.EntityFrameworkCore.Sqlite.Core` instead of `M ``` + +If you need to use a system-installed SQLite library instead of a bundled one, reference the provider directly: + +```xml + + +``` + +For EF Core: + +```xml + + +``` + +And initialize the provider explicitly before using SQLite: + +```csharp +SQLitePCL.raw.SetProvider(new SQLitePCL.SQLite3Provider_sqlite3()); +``` From ec369a499932e1f5fc93cc6fd64ced3fac5c7c96 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 30 Jun 2026 21:11:45 +0000 Subject: [PATCH 2/5] Refine SQLite opt-out wording in breaking changes --- .../core/what-is-new/ef-core-11.0/breaking-changes.md | 4 +--- 1 file changed, 1 insertion(+), 3 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 f3eb8b747e..47bbd2ff75 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 @@ -562,9 +562,7 @@ Review the following cases, which may require action in some applications: - **Platform (RID) coverage.** SQLite3 Multiple Ciphers doesn't currently include native binaries for every runtime identifier covered by `SourceGear.sqlite3`; for example, `linux-riscv64`, `linux-musl-riscv64`, and `linux-musl-s390x` aren't included. If you target a platform that the new bundle doesn't include, the native library may fail to load at runtime. In that case, revert to the standard build using the package references below. -- **Linux glibc requirement and macOS/Linux opt-out.** The bundled `e_sqlite3mc` library is prebuilt native code. On Linux, it currently requires glibc 2.33 or later; on older distributions, loading it can fail at runtime with an error such as `GLIBC_2.33 not found`. On macOS and Linux, if you need to avoid the bundled library altogether (for example, because of runtime compatibility or because you need to use the system SQLite library), switch to the `.Core` packages and either: - - Use `SQLitePCLRaw.bundle_e_sqlite3` to keep using the standard `e_sqlite3` bundled build, as shown below. - - Use `SQLitePCLRaw.provider.sqlite3` together with a system-installed or self-built SQLite library that matches your deployment environment, and initialize `SQLitePCL.raw.SetProvider(new SQLitePCL.SQLite3Provider_sqlite3());`. +- **Linux glibc requirement and macOS/Linux opt-out.** The bundled `e_sqlite3mc` library is prebuilt native code. On Linux, it currently requires glibc 2.33 or later; on older distributions, loading it can fail at runtime with an error such as `GLIBC_2.33 not found`. On macOS and Linux, if you need to avoid the bundled library altogether (for example, because of runtime compatibility or because you need to use the system SQLite library), follow the opt-out steps below. - **Reserved encryption keywords.** SQLite3 Multiple Ciphers reserves certain connection-string/URI parameters and PRAGMAs (such as `key`, `hexkey`, and `cipher`) for encryption configuration. This is unlikely to affect typical applications, but if you happened to use these names for unrelated purposes, behavior may differ. From f7f11b23a1090f98be0500365f9be24291e8abca Mon Sep 17 00:00:00 2001 From: Andriy Svyryd Date: Tue, 30 Jun 2026 14:15:49 -0700 Subject: [PATCH 3/5] Apply suggestion from @AndriySvyryd --- .../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 47bbd2ff75..d8a4fa35c9 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 @@ -562,7 +562,7 @@ Review the following cases, which may require action in some applications: - **Platform (RID) coverage.** SQLite3 Multiple Ciphers doesn't currently include native binaries for every runtime identifier covered by `SourceGear.sqlite3`; for example, `linux-riscv64`, `linux-musl-riscv64`, and `linux-musl-s390x` aren't included. If you target a platform that the new bundle doesn't include, the native library may fail to load at runtime. In that case, revert to the standard build using the package references below. -- **Linux glibc requirement and macOS/Linux opt-out.** The bundled `e_sqlite3mc` library is prebuilt native code. On Linux, it currently requires glibc 2.33 or later; on older distributions, loading it can fail at runtime with an error such as `GLIBC_2.33 not found`. On macOS and Linux, if you need to avoid the bundled library altogether (for example, because of runtime compatibility or because you need to use the system SQLite library), follow the opt-out steps below. +- **Linux glibc requirement and macOS/Linux opt-out.** The bundled `e_sqlite3mc` library is prebuilt native code. On Linux, it currently requires glibc 2.33 or later; on older distributions, loading it can fail at runtime with an error such as `GLIBC_2.33 not found`. If the target system is unable to satisfy this requirement follow the opt-out steps below. - **Reserved encryption keywords.** SQLite3 Multiple Ciphers reserves certain connection-string/URI parameters and PRAGMAs (such as `key`, `hexkey`, and `cipher`) for encryption configuration. This is unlikely to affect typical applications, but if you happened to use these names for unrelated purposes, behavior may differ. From 6fa362110617dd901b6e3a5fc0076071ba95ff95 Mon Sep 17 00:00:00 2001 From: Andriy Svyryd Date: Tue, 30 Jun 2026 14:17:03 -0700 Subject: [PATCH 4/5] Apply suggestion from @AndriySvyryd --- .../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 d8a4fa35c9..c002a96dd0 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 @@ -582,7 +582,7 @@ For EF Core, reference `Microsoft.EntityFrameworkCore.Sqlite.Core` instead of `M ``` -If you need to use a system-installed SQLite library instead of a bundled one, reference the provider directly: +If you need to use a system-installed SQLite library instead of a bundled one, reference `Microsoft.Data.Sqlite.Core` together with `SQLitePCLRaw.provider.sqlite3` instead of the `Microsoft.Data.Sqlite` meta-package: ```xml From 5bad27102ea176485f4cdca1116ad6ac8e007303 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 1 Jul 2026 01:30:13 +0000 Subject: [PATCH 5/5] Remove macOS mention from glibc opt-out note --- .../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 c002a96dd0..d7f4926f2c 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 @@ -562,7 +562,7 @@ Review the following cases, which may require action in some applications: - **Platform (RID) coverage.** SQLite3 Multiple Ciphers doesn't currently include native binaries for every runtime identifier covered by `SourceGear.sqlite3`; for example, `linux-riscv64`, `linux-musl-riscv64`, and `linux-musl-s390x` aren't included. If you target a platform that the new bundle doesn't include, the native library may fail to load at runtime. In that case, revert to the standard build using the package references below. -- **Linux glibc requirement and macOS/Linux opt-out.** The bundled `e_sqlite3mc` library is prebuilt native code. On Linux, it currently requires glibc 2.33 or later; on older distributions, loading it can fail at runtime with an error such as `GLIBC_2.33 not found`. If the target system is unable to satisfy this requirement follow the opt-out steps below. +- **Linux glibc requirement and opt-out.** The bundled `e_sqlite3mc` library is prebuilt native code. On Linux, it currently requires glibc 2.33 or later; on older distributions, loading it can fail at runtime with an error such as `GLIBC_2.33 not found`. If the target system is unable to satisfy this requirement, follow the opt-out steps below. - **Reserved encryption keywords.** SQLite3 Multiple Ciphers reserves certain connection-string/URI parameters and PRAGMAs (such as `key`, `hexkey`, and `cipher`) for encryption configuration. This is unlikely to affect typical applications, but if you happened to use these names for unrelated purposes, behavior may differ.