Skip to content

Document EFCore PRs #38440 and #38277 as EF11 provider-facing changes#5388

Draft
Copilot wants to merge 3 commits into
preview.6from
copilot/document-breaking-change-provider
Draft

Document EFCore PRs #38440 and #38277 as EF11 provider-facing changes#5388
Copilot wants to merge 3 commits into
preview.6from
copilot/document-breaking-change-provider

Conversation

Copilot AI commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

This update adds entries to ef-core-11.0/provider-facing-changes.md so provider authors see breaking changes early and can adapt their implementations without hunting through upstream API diffs.

  • Provider-facing breaking change coverage

    • Added a new entry for PR #38440 (generic type mappings for NativeAOT).
  • Required actions for provider maintainers (now documented inline)

    • Migrate custom mappings to generic base types where applicable (CoreTypeMapping<T>, RelationalTypeMapping<T>).
    • Update CoreTypeMapping.Clone(...) / RelationalTypeMapping.Clone(...) usages and overrides for the removed clrType parameter.
  • Test changes coverage

    • Added a new entry for PR #38277 (xUnit v2 → v3 upgrade in Specification.Tests assemblies).
    • Documents required migration steps: new xunit.v3 packages, Microsoft.DotNet.XUnitV3Extensions, Microsoft.Testing.Platform runner, Microsoft.NET.Test.Sdk; [Collection]/ITestOutputHelper API differences; [ConditionalFact][Fact] and [ConditionalTheory][Theory] renames; and dotnet exec filter flags (--filter-not-trait category=failing --ignore-exit-code 8).
  • Doc metadata refresh

    • Updated page metadata date to reflect the new provider guidance.

## Changes

* Collation names are now quoted in SQL, like column and table names ([see #37462](https://github.com/dotnet/efcore/issues/37462)). If your database doesn't support collation name quoting, override `QuerySqlGenerator.VisitSql()` and `MigrationsSqlGenerator.ColumnDefinition()` to revert to the previous behavior, but it's recommended to implement some sort of restricted character validation.
* Type mapping has been made generic to support NativeAOT ([PR #38440](https://github.com/dotnet/efcore/pull/38440)). Provider maintainers should: (1) update custom mappings to derive from the new generic mapping base types (`CoreTypeMapping<T>` and `RelationalTypeMapping<T>` where applicable) so default comparers can be created without reflection, (2) update calls/overrides of `CoreTypeMapping.Clone(...)` and `RelationalTypeMapping.Clone(...)` to remove the old `clrType` argument and account for the updated `keyComparer` behavior (`keyComparer` now defaults to `comparer` when provided), and (3) update custom runtime annotation code generators implementing `ICSharpRuntimeAnnotationCodeGenerator.Create(...)` for the new signature.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot Remove the last part: "and account for the updated keyComparer behavior (keyComparer now defaults to comparer when provided), and (3) update custom runtime annotation code generators implementing ICSharpRuntimeAnnotationCodeGenerator.Create(...) for the new signature"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in 3c7014a.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Documents EF Core PR #38440 as a provider-facing breaking change for EF Core 11, so database provider maintainers can proactively update type mapping implementations for NativeAOT-related generics changes.

Changes:

  • Updated page metadata date to reflect the new guidance.
  • Added a provider-facing change entry describing the new generic type mapping base types and the Clone(...) signature change (removal of the clrType argument).


## Test changes

* The inheritance specification tests have been reorganized into a folder of their own ([PR](https://github.com/dotnet/efcore/pull/37410)).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot Also add a point for this test change:
ec063d100f — Upgrade to xUnit v3 (dotnet/efcore#38277)
EF Core's Specification.Tests assemblies now target xUnit v3 instead of v2. Provider test projects reference these and inherit hundreds of base test classes.

Action: Migrate provider test projects to xUnit v3 (new xunit.v3 packages, Microsoft.DotNet.XUnitV3Extensions, updated runner ("Microsoft.Testing.Platform"), Microsoft.NET.Test.Sdk, [Collection]/ITestOutputHelper API differences), change [ConditionalFact] to [Fact], [ConditionalTheory] to [Theory]. When running tests directly with dotnet exec add --filter-not-trait category=failing --ignore-exit-code 8

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in the latest commit. The new bullet point in the Test changes section covers: migrating to xunit.v3 packages, Microsoft.DotNet.XUnitV3Extensions, Microsoft.Testing.Platform runner, Microsoft.NET.Test.Sdk, API differences, [ConditionalFact][Fact]/[ConditionalTheory][Theory] changes, and the dotnet exec filter flags.

Copilot AI changed the title Document EFCore PR #38440 as an EF11 provider-facing breaking change Document EFCore PRs #38440 and #38277 as EF11 provider-facing changes Jun 23, 2026
Copilot AI requested a review from AndriySvyryd June 23, 2026 02:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants