[release/3.1] Query: Use stronger reflection in Queryable/Enumerable methods (#24090) #24115
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.
Resolves #24002
Description
As per dotnet/runtime#28776, there are new queryable/enumerable method overloads of existing methods are being added. We use reflection to get some of the methods which EF Core translates and uses in generating result. Those new overloads could cause error in finding correct method.
Customer Impact
Customers won't be able to use EF Core 3.1 on net6 platform.
How found
Indicated on API proposal by customers.
Test coverage
Whole query pipeline uses both classes so any error in reflection will cause all query tests to fail due to type initialization error.
Regression?
No. This is to make code forward-compatible for platform.
Risk
Very low. All tests verify that current code for reflection is correct. Comparison based on exact type of arguments validates that this would not need to be changed in future.