Document EFCore PRs #38440 and #38277 as EF11 provider-facing changes#5388
Document EFCore PRs #38440 and #38277 as EF11 provider-facing changes#5388Copilot wants to merge 3 commits into
Conversation
| ## 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. |
There was a problem hiding this comment.
@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"
There was a problem hiding this comment.
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 theclrTypeargument).
|
|
||
| ## Test changes | ||
|
|
||
| * The inheritance specification tests have been reorganized into a folder of their own ([PR](https://github.com/dotnet/efcore/pull/37410)). |
There was a problem hiding this comment.
@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
There was a problem hiding this comment.
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.
This update adds entries to
ef-core-11.0/provider-facing-changes.mdso provider authors see breaking changes early and can adapt their implementations without hunting through upstream API diffs.Provider-facing breaking change coverage
Required actions for provider maintainers (now documented inline)
CoreTypeMapping<T>,RelationalTypeMapping<T>).CoreTypeMapping.Clone(...)/RelationalTypeMapping.Clone(...)usages and overrides for the removedclrTypeparameter.Test changes coverage
xunit.v3packages,Microsoft.DotNet.XUnitV3Extensions,Microsoft.Testing.Platformrunner,Microsoft.NET.Test.Sdk;[Collection]/ITestOutputHelperAPI differences;[ConditionalFact]→[Fact]and[ConditionalTheory]→[Theory]renames; anddotnet execfilter flags (--filter-not-trait category=failing --ignore-exit-code 8).Doc metadata refresh