|
2 | 2 |
|
3 | 3 | namespace CSQLQueryExpress
|
4 | 4 | {
|
5 |
| - internal class SQLQueryParametersBuilder : ISQLQueryParametersBuilder |
| 5 | + public sealed class SQLQueryParametersBuilder : ISQLQueryParametersBuilder |
6 | 6 | {
|
7 |
| - public IDictionary<string, SQLQueryParameter> Parameters { get; } = new Dictionary<string, SQLQueryParameter>(); |
| 7 | + IDictionary<string, SQLQueryParameter> ISQLQueryParametersBuilder.Parameters { get; } = new Dictionary<string, SQLQueryParameter>(); |
8 | 8 |
|
9 |
| - public string AddParameter(object value) |
| 9 | + private readonly string _parameterPrefix; |
| 10 | + |
| 11 | + public SQLQueryParametersBuilder(string parameterPrefix = "@") |
10 | 12 | {
|
11 |
| - var parameterName = $"@p{Parameters.Count}"; |
12 |
| - Parameters.Add(parameterName, new SQLQueryParameter(parameterName, value)); |
13 |
| - return parameterName; |
| 13 | + _parameterPrefix = parameterPrefix; |
14 | 14 | }
|
15 | 15 |
|
16 |
| - public string AddStoredProcedureParameter(string name, object value, SQLQueryParameterDirection direction) |
| 16 | + string ISQLQueryParametersBuilder.AddParameter(object value) |
17 | 17 | {
|
18 |
| - var parameterName = $"@{name}"; |
19 |
| - Parameters.Add(parameterName, new SQLQueryParameter(parameterName, value, direction)); |
| 18 | + var parameterName = $"{_parameterPrefix}p{((ISQLQueryParametersBuilder)this).Parameters.Count}"; |
| 19 | + ((ISQLQueryParametersBuilder)this).Parameters.Add(parameterName, new SQLQueryParameter(parameterName, value)); |
20 | 20 | return parameterName;
|
21 | 21 | }
|
22 | 22 |
|
| 23 | + string ISQLQueryParametersBuilder.AddStoredProcedureParameter(string name, object value, SQLQueryParameterDirection direction) |
| 24 | + { |
| 25 | + var parameterName = $"{_parameterPrefix}{name}"; |
| 26 | + ((ISQLQueryParametersBuilder)this).Parameters.Add(parameterName, new SQLQueryParameter(parameterName, value, direction)); |
| 27 | + return parameterName; |
| 28 | + } |
23 | 29 | }
|
24 | 30 | }
|
0 commit comments