Skip to content

Commit b8a9803

Browse files
committed
simplify
1 parent b813818 commit b8a9803

File tree

4 files changed

+9
-17
lines changed

4 files changed

+9
-17
lines changed

src/NHibernate/Loader/Collection/DynamicBatchingCollectionLoader.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ private JoinWalker BuildJoinWalker(IQueryableCollection collectionPersister, ISe
3030
private protected override SqlString TransformSql(SqlString sqlString, QueryParameters queryParameters, HashSet<IParameterSpecification> parameterSpecifications)
3131
{
3232
var columns = StringHelper.Qualify(_alias, CollectionPersister.KeyColumnNames);
33-
DynamicBatchingHelper.ExpandBatchIdPlaceholder(sqlString, queryParameters, columns, Factory.Dialect, out var result, out var parameters);
33+
var result = DynamicBatchingHelper.ExpandBatchIdPlaceholder(sqlString, queryParameters, columns, Factory.Dialect, out var parameters);
3434
parameterSpecifications.UnionWith(CreateParameterSpecificationsAndAssignBackTrack(parameters));
3535
return result;
3636
}

src/NHibernate/Loader/DynamicBatchingHelper.cs

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using NHibernate.Criterion;
33
using NHibernate.Engine;
44
using NHibernate.SqlCommand;
5+
using NHibernate.Util;
56

67
namespace NHibernate.Loader
78
{
@@ -14,25 +15,14 @@ public static SqlStringBuilder BuildBatchFetchRestrictionFragment()
1415
return new SqlStringBuilder(1).Add(BatchIdPlaceholder);
1516
}
1617

17-
public static void ExpandBatchIdPlaceholder(SqlString sqlString, QueryParameters queryParameters, string[] columns, Dialect.Dialect dialect, out SqlString result, out Parameter[] parameters)
18-
{
19-
var wherePart = GenerateWherePart(queryParameters, columns, dialect, out parameters);
20-
result = sqlString.ReplaceLast(BatchIdPlaceholder, wherePart);
21-
}
22-
23-
private static SqlString GenerateWherePart(QueryParameters queryParameters, string[] columns, Dialect.Dialect dialect, out Parameter[] parameters)
18+
public static SqlString ExpandBatchIdPlaceholder(SqlString sqlString, QueryParameters queryParameters, string[] columns, Dialect.Dialect dialect, out Parameter[] parameters)
2419
{
2520
var bogusParam = Parameter.Placeholder;
2621
var wherePart = InExpression.GetSqlString(columns, queryParameters.PositionalParameterValues.Length, dialect, bogusParam);
27-
var paramsCount = wherePart.GetParameterCount();
28-
parameters = new Parameter[paramsCount];
29-
for (var i = 0; i < parameters.Length; i++)
30-
{
31-
parameters[i] = Parameter.Placeholder;
32-
}
33-
22+
parameters = wherePart.Parameters.ToArray(x => Parameter.Placeholder);
3423
wherePart.SubstituteBogusParameters(parameters, bogusParam);
35-
return wherePart;
24+
25+
return sqlString.ReplaceLast(BatchIdPlaceholder, wherePart);
3626
}
3727

3828
public static int GetIdsToLoad(object[] batch, out object[] idsToLoad)

src/NHibernate/Loader/Entity/DynamicEntityLoader.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public virtual IList DoEntityBatchFetch(ISessionImplementor session, QueryParame
3131
private protected override SqlString TransformSql(SqlString sqlString, QueryParameters queryParameters, HashSet<IParameterSpecification> parameterSpecifications)
3232
{
3333
var columns = StringHelper.Qualify(_alias, persister.KeyColumnNames);
34-
DynamicBatchingHelper.ExpandBatchIdPlaceholder(sqlString, queryParameters, columns, Factory.Dialect, out var result, out var parameters);
34+
var result = DynamicBatchingHelper.ExpandBatchIdPlaceholder(sqlString, queryParameters, columns, Factory.Dialect, out var parameters);
3535
parameterSpecifications.UnionWith(CreateParameterSpecificationsAndAssignBackTrack(parameters));
3636
return result;
3737
}

src/NHibernate/SqlCommand/SqlString.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,8 @@ public bool EndsWithCaseInsensitive(string value)
393393
&& IndexOf(value, _length - value.Length, value.Length, StringComparison.InvariantCultureIgnoreCase) >= 0;
394394
}
395395

396+
internal IList<Parameter> Parameters => _parameters.Values;
397+
396398
public IEnumerable<Parameter> GetParameters()
397399
{
398400
return _parameters.Values;

0 commit comments

Comments
 (0)