[release/10.0] Fix parameter deduplication logic bug #37190
Merged
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.
Fixes #37189
Description
When the same parameter is referenced multiple times, EF performs deduplication to send only a single SQL parameter to the database, reducing transfer size etc. 10.0 Introduced various changes to this mechanism as part of the general parameter logic cleanup (in #35200), and a one-lineer bug slipped in.
Customer impact
This bug can manifest in various ways when the same parameter or referenced multiple times, or multiple parameters are different only in case sensitivity (see, #37096, #36917 (comment)). This can cause queries which previously worked to fail, and in worse edge cases, queries to return incorrect data because of deduplication to the wrong parameter with the wrong store type (data corruption).
How found
Multiple customers reported on 10.0.0
Regression
Yes
Testing
Testing already existed, but asserted incorrectly.
Risk
Very low, one-line trivial change. Quirk added.