Clear DbCommand.Parameters only after reader is disposed #9308
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 #9277
Issue: For #6249 which allows query with FromSql be called twice, we start clearing out
DbCommand.Parameters
collection so same DbParameters can be used in another command. Though we cleared out Parameters after creating the reader assuming we wouldn't need parameters after command is executed. But for out parameters value is not set until DbReader is disposed.Solution: We should clear out Parameters right before disposing the Command. That makes sure that reader is not open/undisposed and still can reuse the parameter with another command.
This blocks reusing the same parameter till first command is disposed. But behavior of that with out parameter would be weird.