-
Notifications
You must be signed in to change notification settings - Fork 3.3k
[release/9.0-staging] Cosmos Full Text Search support (query part) #35909
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
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fixes #35476 Fixes #35853 (need to fix this one, otherwise vector translator will try to translate full text methods and fail) Description This PR enables full-text search queries using EF Core 9 when targeting Azure Cosmos Db. This is one of the flagship new features for Cosmos and the aim here is to help with it's adoption. This is very limited port of the full feature we are adding in EF 10 Preview 4. We are only adding querying capabilities: function stubs for FullTextContains, FullTextContainsAll, FullTextContainsAny, FullTextScore and RRF as well as logic translating these signatures to built-in Cosmos functions. No model building or data manipulation - containers need to be created outside EF (using Cosmos SDK or in the Data Explorer). Customer impact Customers will be able to use the upcoming full text search capabilities when working with Azure Cosmos Db without the need to upgrade to EF 10 preview. How found Partner team ask. Regression No Testing Extensively tested on EF 10, manual testing on EF9. End-to-end testing is not possible because we can't create containers programmatically (no support for it inside EF Core itself, and the Cosmos SDK which supports it is currently only available in beta, so we can't take dependency on it). Instead, we created containers and data using EF 10, ported all the query tests from EF 10 and ran them using the EF9 bits. Risk Low. Code here is purely additive and actually localized to only a handful of places in the code: validation in ApplyOrdering/AppendOrdering, FTS method translator, parameter inliner and sql generator. Feature is marked as experimental and quirks have been added.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 11 out of 14 changed files in this pull request and generated no comments.
Files not reviewed (3)
- src/EFCore.Cosmos/EFCore.Cosmos.csproj: Language not supported
- src/EFCore.Cosmos/Properties/CosmosStrings.Designer.cs: Language not supported
- src/EFCore.Cosmos/Properties/CosmosStrings.resx: Language not supported
Comments suppressed due to low confidence (1)
src/EFCore.Cosmos/Query/Internal/Translators/CosmosVectorSearchTranslator.cs:44
- The conditional check in the legacy branch uses '&&' instead of '||', which may lead to unexpected behavior when only one of the conditions fails. Consider revising the condition to use '||' for consistency with the new behavior branch.
else if (method.DeclaringType != typeof(CosmosDbFunctionsExtensions) && method.Name != nameof(CosmosDbFunctionsExtensions.VectorDistance))
AndriySvyryd
approved these changes
Apr 9, 2025
Contributor
Author
|
@AndriySvyryd new version up |
a5035dc to
fad7f74
Compare
change TFScore signature to accept params, fixed SqlFunctionExpression to use the new ctor internally, added mandatory property overrides for FragmentExpression (vector search) fixed parameter inliner to not match parameter of type string, but only string[] when processing ContainsAll/Any
AndriySvyryd
approved these changes
Apr 14, 2025
maumar
added a commit
that referenced
this pull request
Apr 14, 2025
…rch experience Continuation of #35909 Bumping version of Cosmos SDK improves user experience out of the box for some scenarios (namely hybrid search). Separated this from the main PR as it required separate approval.
maumar
added a commit
that referenced
this pull request
Apr 15, 2025
… hybrid search experience out of the box bumping cosmos sdk version to improve hybrid search experience out of the box - this is a dry run, will incorporate these changes to the proper 9.0 PR once/if we have green light for the bump Continuation of #35909 Description As part of adding full text search support we realized that some scenarios (specifically hybrid search and some instances of ContainsAll) don't work with the Cosmos SDK that is currently referenced by EFCore.Cosmos 9.x package. The issues can be solved by bumping SDK version to 3.48 Customer impact Customers trying full text search will experience errors for some scenarios - cryptic exception (Syntax error near '-' for hybrid, and invalid results for some ContainsAll queries). Workaround is to manually upgrade Cosmos SDK dependency. How found Internal testing by the partner team. Regression No Testing All current Cosmos tests pass. Performed smoke test to validate that breaking change added in the SDK (requiring explicit Newtonsoft.Json dependency) doesn't have impact on the customer app. Risk Low. This can only affect customers using EFCore.Cosmos, one breaking change introduced in the SDK is benign from the perspective of customers using EFCore to communicate with Cosmos (EFCore package absorbs the breaking change).
maumar
added a commit
that referenced
this pull request
Apr 15, 2025
… hybrid search experience out of the box (#35954) bumping cosmos sdk version to improve hybrid search experience out of the box - this is a dry run, will incorporate these changes to the proper 9.0 PR once/if we have green light for the bump Continuation of #35909 Description As part of adding full text search support we realized that some scenarios (specifically hybrid search and some instances of ContainsAll) don't work with the Cosmos SDK that is currently referenced by EFCore.Cosmos 9.x package. The issues can be solved by bumping SDK version to 3.48 Customer impact Customers trying full text search will experience errors for some scenarios - cryptic exception (Syntax error near '-' for hybrid, and invalid results for some ContainsAll queries). Workaround is to manually upgrade Cosmos SDK dependency. How found Internal testing by the partner team. Regression No Testing All current Cosmos tests pass. Performed smoke test to validate that breaking change added in the SDK (requiring explicit Newtonsoft.Json dependency) doesn't have impact on the customer app. Risk Low. This can only affect customers using EFCore.Cosmos, one breaking change introduced in the SDK is benign from the perspective of customers using EFCore to communicate with Cosmos (EFCore package absorbs the breaking change).
This was referenced Jul 21, 2025
This was referenced Dec 3, 2025
Open
Closed
Chris-Wolfgang
added a commit
to Chris-Wolfgang/DbContextBuilder
that referenced
this pull request
Dec 10, 2025
Updated [Microsoft.EntityFrameworkCore.Design](https://github.com/dotnet/efcore) from 7.0.20 to 9.0.11. <details> <summary>Release notes</summary> _Sourced from [Microsoft.EntityFrameworkCore.Design's releases](https://github.com/dotnet/efcore/releases)._ ## 9.0.11 [Release](https://github.com/dotnet/core/releases/tag/v9.0.11) ## What's Changed * [release/9.0-staging] Merge release/9.0 to release/9.0-staging by @cincuranet in https://github.com/dotnet/efcore/pull/36800 * [release/8.0-staging] Merge release/8.0 to release/8.0-staging by @cincuranet in https://github.com/dotnet/efcore/pull/36798 * [release/9.0-staging] Fix performance degradation in converters because the instance was not reused by @cincuranet in https://github.com/dotnet/efcore/pull/36897 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36915 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36916 * Update branding to 9.0.11 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36925 * Update branding to 8.0.22 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36924 * [release/8.0] Merge release/8.0-staging to release/8.0 by @cincuranet in https://github.com/dotnet/efcore/pull/36943 * [release/9.0] Merge release/9.0-staging to release/9.0 by @cincuranet in https://github.com/dotnet/efcore/pull/36944 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in https://github.com/dotnet/efcore/pull/36939 * Merging internal commits for release/8.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36968 * Merging internal commits for release/9.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36969 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in https://github.com/dotnet/efcore/pull/36973 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36981 **Full Changelog**: https://github.com/dotnet/efcore/compare/v9.0.10...v9.0.11 ## 9.0.10 [Release](https://github.com/dotnet/core/releases/tag/v9.0.10) ## What's Changed * [release/8.0-staging] Merge release/8.0 to release/8.0-staging by @cincuranet in https://github.com/dotnet/efcore/pull/36540 * [release/9.0-staging] Merge release/9.0 to release/9.0-staging by @cincuranet in https://github.com/dotnet/efcore/pull/36541 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36690 * Update branding to 9.0.10 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36697 * Update branding to 8.0.21 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36696 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in https://github.com/dotnet/efcore/pull/36699 * Merging internal commits for release/8.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36727 * Merging internal commits for release/9.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36728 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in https://github.com/dotnet/efcore/pull/36734 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36753 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36765 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36782 * [release/8.0] Disable Guardian Dotnet Analyzers by @AndriySvyryd in https://github.com/dotnet/efcore/pull/36776 * [release/9.0] Disable Guardian Dotnet Analyzers by @AndriySvyryd in https://github.com/dotnet/efcore/pull/36777 * [8.0] Resolve query logger from QueryContext in shaper generation (#36758) by @roji in https://github.com/dotnet/efcore/pull/36779 * [9.0] Resolve query logger from QueryContext in shaper generation (#36758) by @roji in https://github.com/dotnet/efcore/pull/36778 * [release/8.0] Merge release/8.0-staging to release/8.0 by @cincuranet in https://github.com/dotnet/efcore/pull/36788 * [release/9.0] Merge release/9.0-staging to release/9.0 by @cincuranet in https://github.com/dotnet/efcore/pull/36789 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in https://github.com/dotnet/efcore/pull/36784 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36833 * [release/8.0] Remove OSX.13.ARM64 from HelixTargetQueues by @AndriySvyryd in https://github.com/dotnet/efcore/pull/36838 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in https://github.com/dotnet/efcore/pull/36841 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36852 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36853 * [release/8.0] Remove OSX.13.Amd64 target from HelixTargetQueues by @AndriySvyryd in https://github.com/dotnet/efcore/pull/36855 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in https://github.com/dotnet/efcore/pull/36860 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36867 **Full Changelog**: https://github.com/dotnet/efcore/compare/v9.0.9...v9.0.10 ## 9.0.9 [Release](https://github.com/dotnet/core/releases/tag/v9.0.9) ## What's Changed * [release/8.0] Merge release/8.0 => release/8.0-staging by @cincuranet in https://github.com/dotnet/efcore/pull/36197 * [release/9.0] Merge release/9.0 => release/9.0-staging by @cincuranet in https://github.com/dotnet/efcore/pull/36201 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36398 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36495 * Update branding to 9.0.9 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36498 * Update branding to 8.0.20 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36497 * [release/9.0] Dispose related readers in GroupBySplitQueryingEnumerable (#36484) by @roji in https://github.com/dotnet/efcore/pull/36490 * [release/8.0] Dispose related readers in GroupBySplitQueryingEnumerable (#36484) by @roji in https://github.com/dotnet/efcore/pull/36489 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in https://github.com/dotnet/efcore/pull/36500 * Merging internal commits for release/8.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36512 * Merging internal commits for release/9.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36511 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in https://github.com/dotnet/efcore/pull/36514 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36533 * [release/8.0] Merge release/8.0-staging to release/8.0 by @cincuranet in https://github.com/dotnet/efcore/pull/36531 * [release/9.0] Merge release/9.0-staging to release/9.0 by @cincuranet in https://github.com/dotnet/efcore/pull/36532 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36534 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in https://github.com/dotnet/efcore/pull/36537 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36592 **Full Changelog**: https://github.com/dotnet/efcore/compare/v9.0.8...v9.0.9 ## 9.0.7 [Release](https://github.com/dotnet/core/releases/tag/v9.0.7) ## What's Changed * Merge branch 'release/8.0' =>'release/8.0-staging' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35893 * Merge branch 'release/8.0' =>'release/8.0-staging' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/36047 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36098 * Delete src/arcade/eng/common directory by @akoeplinger in https://github.com/dotnet/efcore/pull/36102 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36143 * [release/8.0] Add missing parentheses for set operations by @roji in https://github.com/dotnet/efcore/pull/36139 * [release/9.0] Add missing parentheses for set operations by @roji in https://github.com/dotnet/efcore/pull/36138 * Update branding to 9.0.7 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36186 * Update branding to 8.0.18 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36185 * [release/8.0] Merge release/8.0-staging => release/8.0 by @cincuranet in https://github.com/dotnet/efcore/pull/36193 * [release/9.0] Merge release/9.0-staging => release/9.0 by @cincuranet in https://github.com/dotnet/efcore/pull/36194 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in https://github.com/dotnet/efcore/pull/36192 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36213 * Merging internal commits for release/8.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36222 * Merging internal commits for release/9.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36223 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in https://github.com/dotnet/efcore/pull/36227 **Full Changelog**: https://github.com/dotnet/efcore/compare/v9.0.6...v9.0.7 ## 9.0.6 ## Bug Fixes - **Cosmos/FTS: Improved FullTextScore Translation for Multiple Keywords** The translation of `FullTextScore` in Cosmos Full-Text Search has been updated to use multiple keywords instead of a keyword array, addressing issues with search accuracy and query compatibility. This resolves [#35983](https://github.com/dotnet/efcore/issues/35983) and ensures more reliable full-text search results. [#36000](https://github.com/dotnet/efcore/pull/36000) by [@maumar](https://github.com/maumar) ## Dependency Updates - **[release/8.0] Update dependencies from dotnet/arcade** Updated the Arcade build infrastructure dependencies for the 8.0 release branch, bringing in the latest improvements and security fixes from the Arcade ecosystem. [#35930](https://github.com/dotnet/efcore/pull/35930) by [@dotnet-maestro](https://github.com/dotnet-maestro) - **[release/9.0] Update dependencies from dotnet/arcade** Updated Arcade dependencies for the 9.0 release branch, ensuring the build system benefits from the latest tooling and reliability enhancements. [#36006](https://github.com/dotnet/efcore/pull/36006) by [@dotnet-maestro](https://github.com/dotnet-maestro) - **[release/8.0] Update dependencies from dotnet/arcade** Another update to Arcade dependencies for the 8.0 branch, further aligning with upstream improvements and fixes. [#36085](https://github.com/dotnet/efcore/pull/36085) by [@dotnet-maestro](https://github.com/dotnet-maestro) - **[release/9.0] Update dependencies from dotnet/arcade** Additional update to Arcade dependencies for the 9.0 branch, maintaining up-to-date build tooling and infrastructure. [#36065](https://github.com/dotnet/efcore/pull/36065) by [@dotnet-maestro](https://github.com/dotnet-maestro) ## Technical Improvements - **Merging Internal Commits for release/8.0** Integrated various internal commits into the 8.0 release branch, improving code quality, maintainability, and aligning with internal standards. [#35926](https://github.com/dotnet/efcore/pull/35926) by [@vseanreesermsft](https://github.com/vseanreesermsft) - **Merging Internal Commits for release/8.0** Additional internal commits merged into the 8.0 branch, further enhancing stability and maintainability. [#36080](https://github.com/dotnet/efcore/pull/36080) by [@vseanreesermsft](https://github.com/vseanreesermsft) - **Merging Internal Commits for release/9.0** Integrated internal improvements into the 9.0 branch, ensuring consistency and codebase health. [#36081](https://github.com/dotnet/efcore/pull/36081) by [@vseanreesermsft](https://github.com/vseanreesermsft) ## Infrastructure - **Update Branding to 9.0.6** Updated the product branding and version numbers to 9.0.6, ensuring that all assemblies and packages reflect the correct release version. [#36044](https://github.com/dotnet/efcore/pull/36044) by [@vseanreesermsft](https://github.com/vseanreesermsft) - **Update Branding to 8.0.17** Updated branding for the 8.0 release line to version 8.0.17, keeping versioning consistent across all release artifacts. [#36043](https://github.com/dotnet/efcore/pull/36043) by [@vseanreesermsft](https://github.com/vseanreesermsft) ## Miscellaneous - **[automated] Merge branch 'release/8.0' => 'release/9.0'** Automated merge of changes from the 8.0 branch into the 9.0 branch, ensuring that all relevant fixes and improvements are carried forward. [#35927](https://github.com/dotnet/efcore/pull/35927) by [@github-actions](https://github.com/github-actions) - **Merge release/9.0 to release/9.0-staging** Merged the 9.0 branch into the 9.0-staging branch, preparing for further testing and validation before final release. [#36051](https://github.com/dotnet/efcore/pull/36051) by [@AndriySvyryd](https://github.com/AndriySvyryd) ... (truncated) ## 9.0.5 [Release](https://github.com/dotnet/core/releases/tag/v9.0.5) ## What's Changed * Merge branch 'release/9.0' => 'release/9.0-staging' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35750 * Merging internal commits for release/8.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35765 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35780 * [release/9.0-staging] Fix to #35162 - Regression from EF Core 8 to 9: MigrationBuilder.DropTable Causes Issues with Subsequent Table Recreation by @maumar in https://github.com/dotnet/efcore/pull/35776 * [release/9.0-staging] Fix to #21006 - Support a default value for non-nullable properties by @maumar in https://github.com/dotnet/efcore/pull/35782 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35795 * Update branding to 9.0.5 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35889 * Update branding to 8.0.16 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35888 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions in https://github.com/dotnet/efcore/pull/35772 * Merge branch 'release/9.0-staging' => 'release/9.0' by @maumar in https://github.com/dotnet/efcore/pull/35891 * Merge branch 'release/9.0' =>'release/9.0-staging' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35896 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35912 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35931 * Merging internal commits for release/9.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35925 * [release/9.0] Disable Cosmos tests on CI by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35933 * [release/9.0-staging] Cosmos Full Text Search support (query part) by @maumar in https://github.com/dotnet/efcore/pull/35909 * [release/9.0] Merge Cosmos full-text search support from release/9.0-staging by @maumar in https://github.com/dotnet/efcore/pull/35953 * [release/9.0] Bump version of Cosmos SDK from 3.45 to 3.48 to improve hybrid search experience out of the box by @maumar in https://github.com/dotnet/efcore/pull/35954 **Full Changelog**: https://github.com/dotnet/efcore/compare/v9.0.4...v9.0.5 ## 9.0.4 [Release](https://github.com/dotnet/core/releases/tag/v9.0.4) ## What's Changed * Merge branch 'release/8.0' into 'release/8.0-staging' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35541 * Merging internal commits for release/8.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35621 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35633 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35634 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions in https://github.com/dotnet/efcore/pull/35626 * [release/9.0-staging] Set the environment when executing Scaffold-DBContext by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35693 * [release/8.0-staging] Improve LoadExtension to work correctly with dotnet run and lib* named libs by @roji in https://github.com/dotnet/efcore/pull/35718 * [release/8.0-staging] Transform Span-based overloads to Enumerable in funcletizer by @roji in https://github.com/dotnet/efcore/pull/35720 * [release/9.0-staging] Process Coalesce-simplified Convert node properly in funcletizer by @roji in https://github.com/dotnet/efcore/pull/35721 * [release/9.0-staging] Improve LoadExtension to work correctly with dotnet run and lib* named libs by @roji in https://github.com/dotnet/efcore/pull/35717 * [release/9.0-staging] Transform Span-based overloads to Enumerable in funcletizer by @roji in https://github.com/dotnet/efcore/pull/35719 * Update branding to 8.0.15 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35738 * Update branding to 9.0.4 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35739 * Merge branch 'release/8.0-staging' => 'release/8.0' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35742 * Merge branch 'release/9.0-staging' => 'release/9.0' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35743 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions in https://github.com/dotnet/efcore/pull/35740 * Merging internal commits for release/9.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35766 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35781 **Full Changelog**: https://github.com/dotnet/efcore/compare/v9.0.3...v9.0.4 ## 9.0.3 [Release](https://github.com/dotnet/core/releases/tag/v9.0.3) ## What's Changed * [release/9.0-staging] Fix to #35393 - GroupJoin in EF Core 9 Returns Null for Joined Entities by @maumar in https://github.com/dotnet/efcore/pull/35449 * Merging internal commits for release/8.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35473 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35470 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35498 * Merge branch 'release/9.0' into 'release/9.0-staging' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35542 * [release/9.0-staging] Make SnapshotModelProcessor idempotent. by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35543 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35572 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions in https://github.com/dotnet/efcore/pull/35474 * Update branding to 9.0.3 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35584 * Update branding to 8.0.14 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35583 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions in https://github.com/dotnet/efcore/pull/35587 * Merge branch 'release/9.0-staging' => 'release/9.0' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35601 * Merging internal commits for release/9.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35622 **Full Changelog**: https://github.com/dotnet/efcore/compare/v9.0.2...v9.0.3 ## 9.0.2 [Release](https://github.com/dotnet/core/releases/tag/v9.0.2) ## What's Changed * [release/9.0-staging] Fix to #35108 - Temporal table migration regression from EF Core 8 to 9 by @maumar in https://github.com/dotnet/efcore/pull/35289 * [release/9.0-staging] Don't throw PendingModelChangesWarning when applying a specific migration by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35353 * [release/8.0] Update Helix queues by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35408 * [release/9.0] Update Helix queues by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35407 * [release/9.0-staging] Fix to #35239 - EF9: SaveChanges() is significantly slower in .NET9 vs. .NET8 when using .ToJson() Mapping vs. PostgreSQL Legacy POCO mapping by @maumar in https://github.com/dotnet/efcore/pull/35360 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35415 * [release/9.0-staging] Don't scaffold NonNullableConventionState annotation by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35359 * Update branding to 8.0.13 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35427 * Update branding to 9.0.2 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35428 * Merge branch 'release/9.0-staging' => 'release/9.0' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35463 * Merge branch 'release/8.0-staging' => 'release/8.0' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35464 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions in https://github.com/dotnet/efcore/pull/35429 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35460 * Merging internal commits for release/9.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35472 **Full Changelog**: https://github.com/dotnet/efcore/compare/v9.0.1...v9.0.2 ## 9.0.1 [Release](https://github.com/dotnet/core/releases/tag/v9.0.1) ## What's Changed * [release/9.0-staging] Update macOS images to 13 by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35004 * [release/8.0-staging] Update macOS images to 13 by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35005 * [release/9.0-staging TEST ONLY] adjusting some migration tests so that baselines dont depend on the product version by @maumar in https://github.com/dotnet/efcore/pull/34977 * Update branding to 8.0.12 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35048 * Update branding to 9.0.1 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35049 * Merge branch 'release/8.0' into release/8.0-staging by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35055 * Merge branch 'release/9.0' into release/9.0-staging by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35056 * Merge branch 'release/8.0-staging' => 'release/8.0' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35077 * Merge branch 'release/9.0-staging' => 'release/9.0' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35078 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions in https://github.com/dotnet/efcore/pull/35050 * Merging internal commits for release/8.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35081 * Merging internal commits for release/9.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35083 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions in https://github.com/dotnet/efcore/pull/35085 * [released/9.0] Add missing awaits in MigrationsInfrastructureTestBase by @roji in https://github.com/dotnet/efcore/pull/35107 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35137 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35199 * [release/9.0] Fix TPC equality check inside subquery predicate (#35120) by @roji in https://github.com/dotnet/efcore/pull/35201 * [release/9.0] Add missing Converts when simplifying in funcletizer (#35122) by @roji in https://github.com/dotnet/efcore/pull/35202 * [release/9.0] Correct VisitUnary operand evaluation in funcletizer (#35172) by @roji in https://github.com/dotnet/efcore/pull/35203 * [release/9.0-staging] Fix to #35206 - Query/Perf: don't use Invoke in value comparer lambdas when constructing shaper with PopulateCollection by @maumar in https://github.com/dotnet/efcore/pull/35207 * [release/9.0-staging] Fix to #35208 - Query/Perf: don't compile liftable constant resolvers in interpretation mode by @maumar in https://github.com/dotnet/efcore/pull/35211 * [release/9.0] Enable Cosmos vector search on EF9 by @ajcvickers in https://github.com/dotnet/efcore/pull/35183 * [release/9.0] Return null when the type is nullable for Cosmos Max/Min/Average by @ajcvickers in https://github.com/dotnet/efcore/pull/35216 * [release/9.0-staging] Fix to #35212 - Query/Perf: Compile identifier lambdas passed to PopulateIncludeCollection rather than inline by @maumar in https://github.com/dotnet/efcore/pull/35217 * [release/9.0] Uniquify all variables used in SQL Server migration scripts by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35228 * [release/9.0] Avoid using `^` and `~` when invalid because of value converters by @roji in https://github.com/dotnet/efcore/pull/35241 * [release/9.0] Prevent owner entity from becoming optional by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35222 * [release/9.0] Set environment variables to "Development" when creating DbContext using IDesignTimeDbContextFactory by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35230 * [release/9.0] Fix query filters with context accessors by @cincuranet in https://github.com/dotnet/efcore/pull/35246 * [release/9.0] Add more specific messages when pending model changes are detected by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35221 * [release/9.0] Fix Contains on ImmutableArray by @cincuranet in https://github.com/dotnet/efcore/pull/35251 * Merge branch 'release/9.0-staging' into release/9.0 by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35255 * [release/9.0] Don't suppress transactions when creating the history repository by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35266 **Full Changelog**: https://github.com/dotnet/efcore/compare/v9.0.0...v9.0.1 ## 9.0.0 [Release](https://github.com/dotnet/core/releases/tag/v9.0.0) ## What's Changed * Update branding to 9.0-alpha1 by @wtgodbe in https://github.com/dotnet/efcore/pull/31465 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31467 * Bump Microsoft.AspNetCore.Identity.EntityFrameworkCore from 7.0.9 to 7.0.10 by @dependabot in https://github.com/dotnet/efcore/pull/31461 * Bump Microsoft.Azure.Cosmos from 3.35.2 to 3.35.3 by @dependabot in https://github.com/dotnet/efcore/pull/31463 * Bump Microsoft.AspNetCore.OData from 8.2.0 to 8.2.1 by @dependabot in https://github.com/dotnet/efcore/pull/31462 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31474 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31483 * Fixes and improvements to StartsWith/EndsWith/Contains by @roji in https://github.com/dotnet/efcore/pull/31482 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31421 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31499 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31509 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31510 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31512 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31516 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31523 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31524 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31526 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31528 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31542 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31566 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31575 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31582 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31598 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31601 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31624 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31632 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31635 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31636 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31560 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31640 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31641 * Add readme file for nuget package EFCore.Tools by @lyndaidaii in https://github.com/dotnet/efcore/pull/30470 * Add readme for EFcore.Desgin NuGet package by @lyndaidaii in https://github.com/dotnet/efcore/pull/30471 * Add readme for sql server by @lyndaidaii in https://github.com/dotnet/efcore/pull/30466 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31648 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31649 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31650 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31654 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31660 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31667 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31668 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31670 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31671 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31674 * [automated] Merge branch 'release/8.0' => 'main' by @dotnet-maestro-bot in https://github.com/dotnet/efcore/pull/31669 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31678 * [main] Update dependencies from dotnet/runtime by @dotnet-maestro in https://github.com/dotnet/efcore/pull/31686 ... (truncated) ## 9.0.0-rc.2.24474.1 [Release](https://github.com/dotnet/core/releases/tag/v9.0.0-rc.2) ## 9.0.0-rc.1.24451.1 [Release](https://github.com/dotnet/core/releases/tag/v9.0.0-rc.1) ## 9.0.0-preview.7.24405.3 [Release](https://github.com/dotnet/core/releases/tag/v9.0.0-preview.7) ## 9.0.0-preview.6.24327.4 [Release](https://github.com/dotnet/core/releases/tag/v9.0.0-preview.6) ## 9.0.0-preview.5.24306.3 The team has been working primarily on EF Core internals, so there are no new big features in EF Core 9 (EF9) Preview 5. However, this means we really need people like you to run your code on these new internals and report back what you find. We want to fix bugs in the new internals as soon as possible in order to have a strong GA release later in the year. That being said, there are several smaller enhancements included in preview 5. For full details, see [What's new in EF Core 9](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew). To discuss the EF9 release, go to [Try EF Core 9 now!](https://github.com/dotnet/efcore/issues/33030) on GitHub. ## Enhanced database provider for Azure Cosmos DB for NoSQL We are working on significant updates in EF9 to the EF Core database provider for Azure Cosmos DB for NoSQL. For preview 5, these include: - Support for hierarchical partition keys - Use of any numeric, bool, string, or value-converted type as a partition key See [Azure Cosmos DB for NoSQL](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#cosmos) in the _What's New_ docs for more information. ## Query translation improvements EF9 preview 5 contains three small enhancements to query translation: - Optimization of queries using `Count != 0` or `Count > 0` - Translations for `TimeOnly.FromDateTime` and `TimeOnly.FromTimeSpan` See [LINQ and SQL translation](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#linq-and-sql-translation) in the _What's New_ docs for more information. ## Everything else in preview 5 Preview 5 contains: - [6 enhancements](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview5+is%3Aclosed+label%3Atype-enhancement+) - [6 bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview5+is%3Aclosed+label%3Atype-bug) EF Core 9 preview 5 and Microsoft.Data.Sqlite contain work from the EF Team at Microsoft (@roji @AndriySvyryd @maumar @ajcvickers @cincuranet @SamMonoRT @luisquintanilla). ## 9.0.0-preview.4.24267.1 The team has been working primarily on EF Core internals, so there are no new big features in EF Core 9 (EF9) Preview 4. However, this means we really need people like you to run your code on these new internals and report back what you find. We want to fix bugs in the new internals as soon as possible in order to have a strong GA release later in the year. That being said, there are several smaller enhancements included in preview 4. For full details, see [What's new in EF Core 9](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew). To discuss the EF9 release, go to [Try EF Core 9 now!](https://github.com/dotnet/efcore/issues/33030) on GitHub. ### Enhanced database provider for Azure Cosmos DB for NoSQL We are working on significant updates in EF9 to the EF Core database provider for Azure Cosmos DB for NoSQL. For preview 4, these include: - Role-based access control (RBAC) is supported by EF9 for both management and use of containers. - Azure Cosmos DB for NoSQL does not support synchronous (blocking) access from application code. EF Core now blocks synchronous access by default, helping people fall into the pit-of-success of using async I/O. - Cosmos primitive collection support has been updated to use the metadata and model building APIs from EF8 See [Azure Cosmos DB for NoSQL](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#cosmos) in the _What's New_ docs for more information. ## GroupBy complex types In preview 4, EF9 now supports grouping (`GroupBy` queries) that group by a complex type instance. The resulting SQL uses groups by all members, reflecting the value object semantics of complex types. See [GroupBy complex types](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#groupby-complex-types) in the _What's New_ docs for more information. ## Read-only primitive collections EF8 introduced support for mapping arrays and mutable lists of primitive types. This has been expanded in EF9 to include read-only collections declared as `IReadOnlyList`, `IReadOnlyCollection`, or `ReadOnlyCollection`. See [Read-only primitive collections](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#read-only-primitives) in the _What's New_ docs for more information. ## Everything else in preview 4 Preview 4 contains: - [10 enhancements](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview4+is%3Aclosed+label%3Atype-enhancement+) - [15 bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview4+is%3Aclosed+label%3Atype-bug) EF Core 9 preview 4 (and Microsoft.Data.Sqlite) contains work from the EF Team at Microsoft (@roji @AndriySvyryd @maumar @ajcvickers @cincuranet @SamMonoRT @luisquintanilla) as well as contributions from the EF Core community. The community PRs in EF9 Preview 4 are: - @y0ung3r: [InMemoryTable: Make IsConcurrencyConflict() method more readable](https://github.com/dotnet/efcore/pull/33561) ## 9.0.0-preview.3.24172.4 The team has been working primarily on EF Core internals, so there are no new big features in EF Core 9 (EF9) Preview 3. However, this means we really need people like you to run your code on these new internals and report back what you find. We want to fix bugs in the new internals as soon as possible in order to have a strong GA release later in the year. That being said, there are several smaller enhancements included in preview 3. For full details, see [What's new in EF Core 9](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew). To discuss the EF9 release, go to [Try EF Core 9 now!](https://github.com/dotnet/efcore/issues/33030) on GitHub. ### Auto-compiled models Auto-compiled models allow the [EF Core compiled model](https://learn.microsoft.com/ef/core/performance/advanced-performance-topics#compiled-models) to be automatically regenerated when the model project is built. This means you no longer need to remember to re-run the `dotnet ef dbcontext optimize` command after your EF model changes. See [Auto-compiled models](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#auto-compiled-models) in the _What's New_ docs for more information. ### Sugar for `HierarchyId` path generation First class support for the SQL Server `HierarchyId` type was [added in EF8](https://learn.microsoft.com/ef/core/providers/sql-server/hierarchyid). In EF9, a sugar method has been added to make it easier to create new child nodes in the tree structure. See [Sugar for HierarchyId path generation](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#hierarchyid-path-generation) in the _What's New_ docs for more information. ### Everything else in preview 3 Preview 3 contains: - [6 enhancements](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview3+is%3Aclosed+label%3Atype-enhancement+) - [5 bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview3+is%3Aclosed+label%3Atype-bug) EF Core 9 preview 3 (and Microsoft.Data.Sqlite) contains work from the EF Team at Microsoft (@roji @AndriySvyryd @maumar @ajcvickers @cincuranet @SamMonoRT @luisquintanilla) as well as contributions from the EF Core community. The community PRs in EF9 Preview 3 are: - @lauxjpn: [Cleanup duplicate tests (same test ID)](https://github.com/dotnet/efcore/pull/33185) - @clement911: [Fixed typo in getting-and-building-the-code.md](https://github.com/dotnet/efcore/pull/33166) - @Rezakazemi890: [32943-Sugar for HierarchyId path generation](https://github.com/dotnet/efcore/pull/33062) - @lauxjpn: [Change Where_math(f)_log_new_base queries, so they fail if LOG() parameters are swapped](https://github.com/dotnet/efcore/pull/33342) - @SteSinger: [33196 command timeout allow zero](https://github.com/dotnet/efcore/pull/33198) ## 9.0.0-preview.2.24128.4 The team has been working primarily on EF Core internals, so there are no new big features in EF Core 9 (EF9) Preview 2. However, this means we really need people like you to run your code on these new internals and report back what you find. We want to fix bugs in the new internals as soon as possible in order to have a strong GA release later in the year. That being said, there are several smaller enhancements included in preview 2, many contributed by our community. For full details, see [What's new in EF Core 9](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew). To discuss the EF9 release, go to [Try EF Core 9 now!](https://github.com/dotnet/efcore/issues/33030) on GitHub. ## Improved queries - Inlined uncorrelated subqueries - In EF8, an IQueryable referenced in another query may be executed as a separate database roundtrip. - See [Inlined uncorrelated subqueries](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#inlinedsubs) for full details. - New ToHashSetAsync methods - The `ToHashSet` methods have existed since .NET Core 2.0. In EF9, the equivalent async methods have been added. - See [New `ToHashSetAsync<T>` methods](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#hashsetasync) for full details. ## Improved model building - Specify caching for sequences - EF9 allows setting the caching options for database sequences for any relational database provider that supports this. - See [Specify caching for sequences](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#sequence-caching) for full details. - Specify fill-factor for keys and indexes - EF9 supports specification of the SQL Server fill-factor when using EF Core Migrations to create keys and indexes. - See [Specify fill-factor for keys and indexes](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#fill-factor) for full details. ## Improved tooling - Fewer rebuilds when using `dotnet ef` tools - EF9 invalidates build caches less often, resulting in faster re-builds. - See [Fewer rebuilds](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#fewer-rebuilds) for full details. ## Everything else in preview 2 Preview 2 contains: - [8 enhancements](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview2+is%3Aclosed+label%3Atype-enhancement) - [10 bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+is%3Aclosed+label%3Atype-bug) EF Core 9 preview 2 (and Microsoft.Data.Sqlite) contains work from the EF Team at Microsoft (@roji @AndriySvyryd @maumar @ajcvickers) as well as contributions from the EF Core community. The community PRs in EF9 Preview 1 are: - @Poppyto: [stackalloc for BytesToDecimal](https://github.com/dotnet/efcore/pull/31190) - @francopettinari: [Microsoft.Data.Sqlite.Core issue with multiple Blob colums](https://github.com/dotnet/efcore/pull/32770) - @wertzui: [Added `ToHashSetAsync<T>` Extension methods on `IQueryable<T>`](https://github.com/dotnet/efcore/pull/32905) - @Suchiman: [Fix incremental builds](https://github.com/dotnet/efcore/pull/32860) - @btecu: [Cleanup asserts](https://github.com/dotnet/efcore/pull/32968) - @EngincanV: [Fix typos on DeleteBehavior.cs](https://github.com/dotnet/efcore/pull/32781) - @petterh: [Fix typos, doubled words](https://github.com/dotnet/efcore/pull/32372) - @deano-hunter: [Add fill factor to keys and unique constraints](https://github.com/dotnet/efcore/pull/32900) ## 9.0.0-preview.1.24081.2 The team has been working primarily on EF Core internals, so there are no new big features in EF Core 9 (EF9) Preview 1. However, this means we really need people like you to run your code on these new internals and report back what you find. We want to fix bugs in the new internals as soon as possible in order to have a strong GA release later in the year. That being said, there are also several smaller enhancements included in preview 1. One of these might be just the thing you have been waiting for, so read on! - [Discussion](https://github.com/dotnet/efcore/issues) - [What's new in EF Core 9](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew) documentation. - [Documentation & Samples](https://github.com/dotnet/EntityFramework.Docs) ## Improved queries - Prune columns passed to OPENJSON's WITH clause - EF9 removes unnecessary columns when calling `OPENJSON WITH`. - See [_Prune columns from JSON_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#prune-columns-passed-to-openjsons-with-clause) in the What's New docs for full details including runnable samples. - Translations involving GREATEST/LEAST - Several new translations have been introduced that use the `GREATEST` and `LEAST` SQL functions. - This includes translations of `Math.Min` and `Math.Max` in non-aggregate queries, as well as directly exposing the `GREATEST` and `LEAST` SQL functions in relational providers. - See [_GREATEST/LEAST translations_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#prune-columns-passed-to-openjsons-with-clause) in the What's New docs for full details including runnable samples. - Force or prevent query parameterization - Except in some special cases, EF Core parameterizes variables used in a LINQ query, but includes constants in the generated SQL. EF9 allows constants to be translated to parameters and variables to be translated to constants on a case to case basis. - See [_Force or prevent query parameterization_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#force-or-prevent-query-parameterization) in the What's New docs for full details including runnable samples. ## ExecuteUpdate - Allow passing complex type instances to ExecuteUpdate - EF9 supports directly passing complex type instances to `ExecuteUpdate` as sugar for updating all member values. - See [_ExecuteUpdate for complex types_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#allow-passing-complex-type-instances-to-executeupdate) in the What's New docs for full details including runnable samples. ## Temporal tables - Small migrations for temporal tables - The migration created when changing an existing table into a temporal table has been reduced in size for EF9. - See [_Improved temporal table migrations_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#improved-temporal-table-migrations) in the What's New docs for full details including runnable samples. ## Model building - Make existing model building conventions more extensible - In EF9, we have made it easier to extend some of the existing conventions, such as those for property and key discovery. - See [_Extensible model building conventions_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#make-existing-model-building-conventions-more-extensible) in the What's New docs for full details including runnable samples. - ApplyConfigurationsFromAssembly calls non-public constructors - In EF9, we have both improved the error messages generated when this fails, and also enabled instantiation by non-public constructor. - See [_ApplyConfigurationsFromAssembly calls non-public constructors_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#update-applyconfigurationsfromassembly-to-call-non-public-constructors) in the What's New docs for full details including runnable samples. ## Everything else in Preview 1 Preview 1 contains: - [30 enhancements](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+is%3Aclosed+label%3Atype-enhancement+) - [51 bug fixes in EF9 Preview 1](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+is%3Aclosed+label%3Atype-bug) - [8 bug fixes also shipped in 8.0.1](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A8.0.1+is%3Aclosed) - [25 bug fixes also shipped in 8.0.2](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A8.0.2+is%3Aclosed+) ... (truncated) ## 8.0.22 [Release](https://github.com/dotnet/core/releases/tag/v8.0.22) ## What's Changed * [release/8.0-staging] Merge release/8.0 to release/8.0-staging by @cincuranet in https://github.com/dotnet/efcore/pull/36798 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36915 * Update branding to 8.0.22 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36924 * [release/8.0] Merge release/8.0-staging to release/8.0 by @cincuranet in https://github.com/dotnet/efcore/pull/36943 * Merging internal commits for release/8.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36968 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36980 **Full Changelog**: https://github.com/dotnet/efcore/compare/v8.0.21...v8.0.22 ## 8.0.21 [Release](https://github.com/dotnet/core/releases/tag/v8.0.21) ## What's Changed * [release/8.0-staging] Merge release/8.0 to release/8.0-staging by @cincuranet in https://github.com/dotnet/efcore/pull/36540 * Update branding to 8.0.21 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36696 * Merging internal commits for release/8.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36727 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36765 * [release/8.0] Disable Guardian Dotnet Analyzers by @AndriySvyryd in https://github.com/dotnet/efcore/pull/36776 * [8.0] Resolve query logger from QueryContext in shaper generation (#36758) by @roji in https://github.com/dotnet/efcore/pull/36779 * [release/8.0] Merge release/8.0-staging to release/8.0 by @cincuranet in https://github.com/dotnet/efcore/pull/36788 * [release/8.0] Remove OSX.13.ARM64 from HelixTargetQueues by @AndriySvyryd in https://github.com/dotnet/efcore/pull/36838 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36853 * [release/8.0] Remove OSX.13.Amd64 target from HelixTargetQueues by @AndriySvyryd in https://github.com/dotnet/efcore/pull/36855 **Full Changelog**: https://github.com/dotnet/efcore/compare/v8.0.20...v8.0.21 ## 8.0.20 [Release](https://github.com/dotnet/core/releases/tag/v8.0.20) ## What's Changed * [release/8.0] Merge release/8.0 => release/8.0-staging by @cincuranet in https://github.com/dotnet/efcore/pull/36197 * Update branding to 8.0.20 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36497 * [release/8.0] Dispose related readers in GroupBySplitQueryingEnumerable (#36484) by @roji in https://github.com/dotnet/efcore/pull/36489 * Merging internal commits for release/8.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/36512 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/efcore/pull/36533 * [release/8.0] Merge release/8.0-staging to release/8.0 by @cincuranet in https://github.com/dotnet/efcore/pull/36531 **Full Changelog**: https://github.com/dotnet/efcore/compare/v8.0.19...v8.0.20 ## 8.0.17 ## Dependency Updates - **Update dependencies from dotnet/arcade** ([#36085](https://github.com/dotnet/efcore/pull/36085)) Updates the project's dependencies using the latest versions from the dotnet/arcade repository. This ensures that the build infrastructure and related tooling are up to date, which can bring in important bug fixes, security patches, and improvements from upstream. ## Miscellaneous - **Update branding to 8.0.17** ([#36043](https://github.com/dotnet/efcore/pull/36043)) Updates the internal version branding to 8.0.17. This change ensures that the product and its packages correctly reflect the new release version, helping users and developers identify the build. - **Merging internal commits for release/8.0** ([#36080](https://github.com/dotnet/efcore/pull/36080)) Integrates various internal commits into the release/8.0 branch. This merge brings together important updates and ensures the release branch is synchronized with recent internal development, maintaining consistency and stability for the release. --- This summary is generated and may contain inaccuracies. For complete details, please review the linked pull requests. Full Changelog: [v8.0.16...v8.0.17](https://github.com/dotnet/efcore/compare/v8.0.16...v8.0.17) ## 8.0.16 [Release](https://github.com/dotnet/core/releases/tag/v8.0.16) ## What's Changed * Update branding to 8.0.16 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35888 * Merging internal commits for release/8.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35926 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35930 **Full Changelog**: https://github.com/dotnet/efcore/compare/v8.0.15...v8.0.16 ## 8.0.15 [Release](https://github.com/dotnet/core/releases/tag/v9.0.3) ## What's Changed * Merge branch 'release/8.0' into 'release/8.0-staging' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35541 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35633 * [release/8.0-staging] Improve LoadExtension to work correctly with dotnet run and lib* named libs by @roji in https://github.com/dotnet/efcore/pull/35718 * [release/8.0-staging] Transform Span-based overloads to Enumerable in funcletizer by @roji in https://github.com/dotnet/efcore/pull/35720 * Update branding to 8.0.15 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35738 * Merge branch 'release/8.0-staging' => 'release/8.0' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35742 * Merging internal commits for release/8.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35765 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35780 **Full Changelog**: https://github.com/dotnet/efcore/compare/v8.0.14...v8.0.15 ## 8.0.14 [Release](https://github.com/dotnet/core/releases/tag/v8.0.14) ## What's Changed * Update branding to 8.0.14 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35583 * Merging internal commits for release/8.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35621 **Full Changelog**: https://github.com/dotnet/efcore/compare/v8.0.13...v8.0.14 ## 8.0.13 [Release](https://github.com/dotnet/core/releases/tag/v8.0.13 ## What's Changed * [release/8.0] Update Helix queues by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35408 * Update branding to 8.0.13 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35427 * Merge branch 'release/8.0-staging' => 'release/8.0' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35464 * Merging internal commits for release/8.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35473 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/35470 **Full Changelog**: https://github.com/dotnet/efcore/compare/v8.0.12...v8.0.13 ## 8.0.12 [Release](https://github.com/dotnet/core/releases/tag/v8.0.12) ## What's Changed * [release/8.0-staging] Update macOS images to 13 by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35005 * Update branding to 8.0.12 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35048 * Merge branch 'release/8.0' into release/8.0-staging by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35055 * Merge branch 'release/8.0-staging' => 'release/8.0' by @AndriySvyryd in https://github.com/dotnet/efcore/pull/35077 * Merging internal commits for release/8.0 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/35081 **Full Changelog**: https://github.com/dotnet/efcore/compare/v8.0.11...v8.0.12 ## 8.0.11 [Release](https://github.com/dotnet/core/releases/tag/v8.0.11) ## What's Changed * Update branding to 8.0.11 by @vseanreesermsft in https://github.com/dotnet/efcore/pull/34807 * [release/8.0] Remove referencing indexes when reconfiguring a property as a navigation by @AndriySvyryd in https://github.com/dotnet/efcore/pull/34651 * [release/8.0] Update dependencies by @AndriySvyryd in https://github.com/dotnet/efcore/pull/34822 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro in https://github.com/dotnet/efcore/pull/34880 * [release/8.0] Update Microsoft.Extensions.HostFactoryResolver.Sources version by @AndriySvyryd in https://github.com/dotnet/efcore/pull/34884 * [release/8.0] Don't execute empty batches by @AndriySvyryd in https://github.com/dotnet/efcore/pull/34882 * [release/8.0] Avoid infinite recursion on identifying shadow FKs by @AndriySvyryd in https://github.com/dotnet/efcore/pull/34891 * Merging internal commits for release/8.0 by @AndriySvyryd in https://github.com/dotnet/efcore/pull/34902 * [release/8.0] Keep parameter values out IMemoryCache in RelationalCommandCache by @roji in https://github.com/dotnet/efcore/pull/34908 **Full Changelog**: https://github.com/dotnet/efcore/compare/v8.0.10...v8.0.11 ## 8.0.10 [Release](https://github.com/dotnet/core/releases/tag/v8.0.10) ## 8.0.8 [Release](https://github.com/dotnet/core/releases/tag/v8.0.8) ## 8.0.7 EF Core 8.0.7 is [available on NuGet now](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore/8.0.7). This is a patch release of EF Core 8 (EF8) containing only [important bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A8.0.7+is%3Aclosed): - [Missing checks for predicate when simplifying JSON primitive collections](https://github.com/dotnet/efcore/issues/ #33932 - [Discriminator columns are created in Snapshot for wrongly configured TPC mapping strategy](https://github.com/dotnet/efcore/issues/ 33605) - [Breaking Change in 8.0.4: System.InvalidOperationException: The data is NULL at ordinal 0. This method can't be called on NULL values. Check using IsDBNull before calling.](https://github.com/dotnet/efcore/issues/33547) - [Wrong mapping of nested complex property with generic types and same property name, resulting in InvalidCastException](https://github.com/dotnet/efcore/issues/33449) ## 8.0.6 This is a [patch release of EF Core 8.0](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore/8.0.6) containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 8.0.5. ## 8.0.5 This is a [patch release of EF Core 8.0](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore/8.0.5) containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 8.0.4. ## 8.0.4 EF Core 8.0.4 is [available on NuGet now](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore/8.0.4). This is a patch release of EF Core 8 (EF8) containing only [important bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A8.0.4+is%3Aclosed): - [Incorrect apply projection for complex properties](https://github.com/dotnet/efcore/issues/32911) - [The database default created by Migrations for primitive collections mapped to JSON is invalid](https://github.com/dotnet/efcore/issues/32972) - [Filtering by Contains with HierarchyId and AsSplitQuery is not working](https://github.com/dotnet/efcore/issues/32976) - [Unfulfillable nullable contraints are set for complex types with TPH entities](https://github.com/dotnet/efcore/issues/33004) - [OutOfMemoryException when creating migration using ef tool](https://github.com/dotnet/efcore/issues/33176) - [SQL Server: Should retry on 203](https://github.com/dotnet/efcore/issues/33260) ## 8.0.3 EF Core 8.0.3 is [available on NuGet now](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore/8.0.3). This is a patch release of EF Core 8 (EF8) containing only [important bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A8.0.3+is%3Aclosed): - [Constructor calls when using inheritance with owned entities causes exceptions](https://github.com/dotnet/efcore/issues/31353) - [Missing package README file](https://github.com/dotnet/efcore/issues/31947) - [String properties with indexes are compared case insensitively on SQL Server](https://github.com/dotnet/efcore/issues/32898) - [Using SqliteConnection from an ASP.NET MVC (.NET Framework) application results in a few different exceptions](https://github.com/dotnet/efcore/issues/32614) - [Exception when using FromSql on entity with ComplexProperty](https://github.com/dotnet/efcore/issues/32699) - [IndexOutOfRange for EntityEntry.GetDatabaseValues() with complex type and TPH](https://github.com/dotnet/efcore/issues/32701) - [SQL Server Migrations - SqlOperation.Sql is stripped of all empty lines](https://github.com/dotnet/efcore/issues/32730) - [NullReferenceException in Get-Migration in EF Core 8](https://github.com/dotnet/efcore/issues/32732) - [Owned entity on genericly typed entity generates unwanted steps in new migrations](https://github.com/dotnet/efcore/issues/32763) - [Dotnet-ef mismatch causes apply Entity Framework migration fails when publishing an individual web app.](https://github.com/dotnet/efcore/issues/32782) - [Query never returns when DB value for column mapped to primitive collection is](https://github.com/dotnet/efcore/issues/32896) ## 8.0.2 EF Core 8.0.2 is [available on NuGet now](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore/8.0.2). This is a patch release of EF Core 8 (EF8) containing only [important bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A8.0.2+is%3Aclosed): - [Adding EF.Constant to prevent parameterization in query](https://github.com/dotnet/efcore/issues/32680) - [Nav expansion visitor does not visit the Contains item argument](https://github.com/dotnet/efcore/issues/32217) - [SqliteException "no such column : rX.value" when ordering on subquery value in combination with a "where contains" when upgrading from 7 to 8.0.0-rc.2.23480.1](https://github.com/dotnet/efcore/issues/32234) - [DB Context pooling with proxies resulting in memory issues in 8.0 RC2](https://github.com/dotnet/efcore/issues/32267) - [Nav expansion visitor does not visit the non-lambda arguments (Skip, Take, ElementAt)](https://github.com/dotnet/efcore/issues/32312) - [LINQ "Contains" generates SQL with wrong char length](https://github.com/dotnet/efcore/issues/32325) - [Using new[] in select query gives exception .NET 8](https://github.com/dotnet/efcore/issues/32331) - [EF Core Cosmos 7.0.13 => 7.0.14 Value cannot be null. (Parameter 'derivedType')](https://github.com/dotnet/efcore/issues/32363) - [New OpenJSON expression to SQL translation breaks aggregates on subquery with 'Cannot perform an aggregate function on an expression containing an aggregate or a subquery' exception](https://github.com/dotnet/efcore/issues/32374) - [Did Contains stop working on empty list in EF Core 8?](https://github.com/dotnet/efcore/issues/32375) - [LINQ "Contains" fails to generate SQL with custom converter](https://github.com/dotnet/efcore/issues/32376) - [error on working with explicit many-to-many relations with OnDelete.Restrict](https://github.com/dotnet/efcore/issues/32383) - [Lazy loader throwing invalid operation exceptions](https://github.com/dotnet/efcore/issues/32390) - [Cosmos provider v7.0.14 and v8.0.0 breaks previous OwnsMany behaviour](https://github.com/dotn…
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Limited port of #35868
Fixes #35476
Fixes #35853 (need to fix this one, otherwise vector translator will try to translate full text methods and fail)
Description
This PR enables full-text search queries using EF Core 9 when targeting Azure Cosmos Db. This is one of the flagship new features for Cosmos and the aim here is to help with it's adoption. This is very limited port of the full feature we are adding in EF 10 Preview 4. We are only adding querying capabilities: function stubs for FullTextContains, FullTextContainsAll, FullTextContainsAny, FullTextScore and RRF as well as logic translating these signatures to built-in Cosmos functions. No model building or data manipulation - containers need to be created outside EF (using Cosmos SDK or in the Data Explorer).
Customer impact
Customers will be able to use the upcoming full text search capabilities when working with Azure Cosmos Db without the need to upgrade to EF 10 preview.
How found
Partner team ask.
Regression
No
Testing
Extensively tested on EF 10, manual testing on EF9. End-to-end testing is not possible because we can't create containers programmatically (no support for it inside EF Core itself, and the Cosmos SDK which supports it is currently only available in beta, so we can't take dependency on it). Instead, we created containers and data using EF 10, ported all the query tests from EF 10 and ran them using the EF9 bits.
Risk
Low. Code here is purely additive and actually localized to only a handful of places in the code: validation in ApplyOrdering/AppendOrdering, FTS method translator, parameter inliner and sql generator. Feature is marked as experimental and quirks have been added.