Skip to content

Commit 70952cf

Browse files
committed
Fixing potential issue where CreateCopy wasn't creating a copy.
1 parent 6b85147 commit 70952cf

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

src/SQLHelper.DB/HelperClasses/BaseClasses/ParameterBase.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,15 @@ protected ParameterBase(string id, TDataType value, ParameterDirection direction
4545
{
4646
}
4747

48+
/// <summary>
49+
/// Initializes a new instance of the <see cref="ParameterBase{TDataType}"/> class.
50+
/// </summary>
51+
/// <param name="parameter">The parameter.</param>
52+
protected ParameterBase(ParameterBase<TDataType> parameter)
53+
: this(parameter.ID, parameter.DatabaseType, parameter.Value, parameter.Direction, parameter.ParameterStarter)
54+
{
55+
}
56+
4857
/// <summary>
4958
/// Constructor
5059
/// </summary>

src/SQLHelper.DB/HelperClasses/Parameter.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,7 @@ public override void AddParameter(DbCommand helper)
8282
/// <returns>A copy of the parameter</returns>
8383
public override IParameter CreateCopy(string suffix)
8484
{
85-
ID += suffix;
86-
return this;
85+
return new Parameter<TDataType>(ID + suffix, DatabaseType, Value, Direction, ParameterStarter);
8786
}
8887
}
8988
}

src/SQLHelper.DB/HelperClasses/StringParameter.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class StringParameter : ParameterBase<string>
3535
/// <param name="direction">Direction of the parameter</param>
3636
/// <param name="parameterStarter">Parameter starter</param>
3737
public StringParameter(string id, string value, ParameterDirection direction = ParameterDirection.Input, string parameterStarter = "@")
38-
: base(id, value, direction, parameterStarter)
38+
: base(id, DbType.String, value, direction, parameterStarter)
3939
{
4040
}
4141

@@ -55,8 +55,7 @@ public override void AddParameter(DbCommand helper)
5555
/// <returns>A copy of the parameter</returns>
5656
public override IParameter CreateCopy(string suffix)
5757
{
58-
ID += suffix;
59-
return this;
58+
return new StringParameter(ID + suffix, Value, Direction, ParameterStarter);
6059
}
6160
}
6261
}

0 commit comments

Comments
 (0)