Skip to content

Commit 48b414c

Browse files
hazzikfredericDelaporte
authored andcommitted
NH-3944 - Fix nuspec template for Relinq migration
1 parent 63f4fcc commit 48b414c

File tree

5 files changed

+19
-15
lines changed

5 files changed

+19
-15
lines changed

src/NHibernate/Linq/NhLinqExpression.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public NhLinqExpression(Expression expression, ISessionFactoryImplementor sessio
4141
_constantToParameterMap = ExpressionParameterVisitor.Visit(ref _expression, sessionFactory);
4242

4343
ParameterValuesByName = _constantToParameterMap.Values.ToDictionary(p => p.Name,
44-
p => System.Tuple.Create(p.Value, p.Type));
44+
p => System.Tuple.Create(p.Value, p.Type));
4545

4646
Key = ExpressionKeyVisitor.Visit(_expression, _constantToParameterMap);
4747

@@ -62,15 +62,15 @@ public IASTNode Translate(ISessionFactoryImplementor sessionFactory, bool filter
6262
var requiredHqlParameters = new List<NamedParameterDescriptor>();
6363
var querySourceNamer = new QuerySourceNamer();
6464
var queryModel = NhRelinqQueryParser.Parse(_expression);
65-
var visitorParameters = new VisitorParameters(sessionFactory, _constantToParameterMap, requiredHqlParameters, querySourceNamer);
65+
var visitorParameters = new VisitorParameters(sessionFactory, _constantToParameterMap, requiredHqlParameters, querySourceNamer, ReturnType);
6666

67-
ExpressionToHqlTranslationResults = QueryModelVisitor.GenerateHqlQuery(queryModel, visitorParameters, true, ReturnType);
67+
ExpressionToHqlTranslationResults = QueryModelVisitor.GenerateHqlQuery(queryModel, visitorParameters, true);
6868

6969
if (ExpressionToHqlTranslationResults.ExecuteResultTypeOverride != null)
7070
Type = ExpressionToHqlTranslationResults.ExecuteResultTypeOverride;
7171

7272
ParameterDescriptors = requiredHqlParameters.AsReadOnly();
73-
73+
7474
return ExpressionToHqlTranslationResults.Statement.AstNode;
7575
}
7676

src/NHibernate/Linq/Visitors/HqlGeneratorExpressionVisitor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -496,7 +496,7 @@ protected HqlTreeNode VisitConditionalExpression(ConditionalExpression expressio
496496

497497
protected HqlTreeNode VisitSubQueryExpression(SubQueryExpression expression)
498498
{
499-
ExpressionToHqlTranslationResults query = QueryModelVisitor.GenerateHqlQuery(expression.QueryModel, _parameters, false, null);
499+
ExpressionToHqlTranslationResults query = QueryModelVisitor.GenerateHqlQuery(expression.QueryModel, _parameters, false);
500500
return query.Statement;
501501
}
502502

src/NHibernate/Linq/Visitors/QueryModelVisitor.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ namespace NHibernate.Linq.Visitors
2121
{
2222
public class QueryModelVisitor : QueryModelVisitorBase
2323
{
24-
public static ExpressionToHqlTranslationResults GenerateHqlQuery(QueryModel queryModel, VisitorParameters parameters, bool root,
25-
NhLinqExpressionReturnType? rootReturnType)
24+
public static ExpressionToHqlTranslationResults GenerateHqlQuery(QueryModel queryModel, VisitorParameters parameters, bool root)
2625
{
2726
NestedSelectRewriter.ReWrite(queryModel, parameters);
2827

@@ -81,14 +80,14 @@ public static ExpressionToHqlTranslationResults GenerateHqlQuery(QueryModel quer
8180
// Identify and name query sources
8281
QuerySourceIdentifier.Visit(parameters.QuerySourceNamer, queryModel);
8382

84-
var visitor = new QueryModelVisitor(parameters, root, queryModel, rootReturnType, result);
83+
var visitor = new QueryModelVisitor(parameters, root, queryModel, result);
8584
visitor.Visit();
8685

8786
return visitor._hqlTree.GetTranslation();
8887
}
8988

9089
private readonly IntermediateHqlTree _hqlTree;
91-
private readonly NhLinqExpressionReturnType? _rootReturnType;
90+
private readonly NhLinqExpressionReturnType _rootReturnType;
9291
private static readonly ResultOperatorMap ResultOperatorMap;
9392
private bool _serverSide = true;
9493

@@ -129,11 +128,11 @@ static QueryModelVisitor()
129128
}
130129

131130
private QueryModelVisitor(VisitorParameters visitorParameters, bool root, QueryModel queryModel,
132-
NhLinqExpressionReturnType? rootReturnType, ResultOperatorRewriterResult rewrittenOperatorResult)
131+
ResultOperatorRewriterResult rewrittenOperatorResult)
133132
{
134133
VisitorParameters = visitorParameters;
135134
Model = queryModel;
136-
_rootReturnType = root ? rootReturnType : null;
135+
_rootReturnType = visitorParameters.RootReturnType;
137136
RewrittenOperatorResult = rewrittenOperatorResult;
138137
_hqlTree = new IntermediateHqlTree(root);
139138
}
@@ -146,7 +145,7 @@ private void Visit()
146145

147146
private void AddAdditionalPostExecuteTransformer()
148147
{
149-
if (_rootReturnType == NhLinqExpressionReturnType.Scalar && Model.ResultTypeOverride != null &&
148+
if (_hqlTree.IsRoot && _rootReturnType == NhLinqExpressionReturnType.Scalar && Model.ResultTypeOverride != null &&
150149
Model.SelectClause.Selector.NodeType == ExpressionType.Extension &&
151150
Model.SelectClause.Selector is NhExpression nhExpression)
152151
{

src/NHibernate/Linq/Visitors/VisitorParameters.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ public class VisitorParameters
1717

1818
public QuerySourceNamer QuerySourceNamer { get; }
1919

20+
public NhLinqExpressionReturnType RootReturnType { get; }
21+
2022
private readonly HashSet<WhereClause> _havingClauses = new HashSet<WhereClause>();
2123
private readonly HashSet<AdditionalFromClause> _leftJoins = new HashSet<AdditionalFromClause>();
2224
private readonly HashSet<WhereClause> _withClauses = new HashSet<WhereClause>();
@@ -26,12 +28,14 @@ public VisitorParameters(
2628
ISessionFactoryImplementor sessionFactory,
2729
IDictionary<ConstantExpression, NamedParameter> constantToParameterMap,
2830
List<NamedParameterDescriptor> requiredHqlParameters,
29-
QuerySourceNamer querySourceNamer)
31+
QuerySourceNamer querySourceNamer,
32+
NhLinqExpressionReturnType rootReturnType)
3033
{
3134
SessionFactory = sessionFactory;
3235
ConstantToParameterMap = constantToParameterMap;
3336
RequiredHqlParameters = requiredHqlParameters;
3437
QuerySourceNamer = querySourceNamer;
38+
RootReturnType = rootReturnType;
3539
}
3640

3741
/// <summary>

src/NHibernate/NHibernate.nuspec.template

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
<dependencies>
1616
<!-- Bet that if there is ever an Iesi.Collections 5.0, it would be incompatible. -->
1717
<dependency id="Iesi.Collections" version="[4,5)" />
18-
<dependency id="Remotion.Linq" version="[1.15.15,2)" />
18+
<dependency id="Remotion.Linq" version="[2.1.1, 3)" />
19+
<dependency id="Remotion.Linq.EagerFetching" version="[2.0.1, 3)" />
1920
</dependencies>
2021
<projectUrl>
2122
http://nhibernate.info
@@ -34,4 +35,4 @@
3435
<file src="NHibernateXmlConfigurationTemplates\*" target="ConfigurationTemplates" />
3536
<file src="..\..\..\src\NHibernate\**\*.cs" target="src" />
3637
</files>
37-
</package>
38+
</package>

0 commit comments

Comments
 (0)