Look into parameter placeholder generation in RawSqlCommandBuilder

Open
#22,458 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Stale
Tech stack
csharp
Domain
database

Research direction

Read src/EFCore.Relational/Storage/Internal/RawSqlCommandBuilder.cs, focusing on GenerateParameterNamePlaceholder, both GenerateParameterName overloads, and the nameless DbParameter path. Compare them with the other command-generation places mentioned in the issue; done means the placeholder and parameter-name behavior is consistent and provider requirements are accounted for.

Written by the indexing model from the issue text.

Description

area-query customer-reported

In RawSqlCommandBuilder, GenerateParameterNamePlaceholder doesn't seem to be used (only GenerateParameterName is used). Note that if a nameless DbParameter is provided, GenerateParameterName is called twice.

This likely isn't a problem at the moment because both methods do the same thing by default (prepend a '@' if it's missing), and current providers don't need anything more - but it's probably not correct. Also compare this against what we're doing in other command-generation places.

Raised by @deokershesh in #22441

Also, seems that GenerateParameterName(string) prepends @ only if the given name doesn't already have it, but GenerateParameterName(StringBuilder,string) always prepends... We should go over this.

Dominant language
C#
Stars
14.8k
Forks
3.4k
Avg merge
2d 5h
Merged PRs (30d)
134

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from dotnet/efcore

All issues in dotnet/efcore

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.