-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
[release/8.0] Allow opting out of new subquery translation for Contains #32434
Conversation
Closes dotnet#31552 (cherry picked from commit 484a3ed)
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.
lgtm 👍
Is there an ETA on releasing this? |
Feb 2024. Consider using EF9 daily builds until then. |
@AndriySvyryd We were expecting this to be released as a patch on EF Core 8. Is that no longer the case? |
@jmezach The patch is scheduled for Feb 2024. Unfortunately, there are no patch builds available publicly until release day; this is outside of our control. Hence if you need the fix before then, then you'll need to use the daily builds of EF9. |
@jmezach And the daily builds for EF9 are basically at this point in time the latest bug fixes for EF 8 and nothing else. |
@ajcvickers won’t there be 8.0.1 this month, 8.0.2 in January, 8.0.3 in February? So are EF patches being deliberately held back? |
@stevendarby I think it is 8.0.1 in January (December is skipped) |
Management decisions:
|
Is this in the 8.0.2 package? |
@clement911 Yes, as you can see from the milestone of #31552 |
Fixes #31552, backports #32412.
Description
As part of the new primitive collections support, EF8 translates the LINQ Contains operator using SQL subqueries (with e.g. OPENJSON on SQL Server) rather than the older and inefficient IN+constants translation. Although the new query shape is preferable, some edge cases have been flagged with it in terms of functionality and performance. This allows users to opt-out of the new translation on a per-query basis, going back to the old translation when needed.
Customer impact
In some edge cases, the new 8.0 Contains translation may be considerably less performant (#32394), or not supported by a specific database (#32374).
How found
Customer reported on 8.0
Regression
Yes
Testing
Added.
Risk
Very low; quirk added.