@@ -340,7 +340,8 @@ public override void VisitAdditionalFromClause(AdditionalFromClause fromClause,
340
340
public override void VisitNhJoinClause ( NhJoinClause joinClause , QueryModel queryModel , int index )
341
341
{
342
342
var querySourceName = VisitorParameters . QuerySourceNamer . GetName ( joinClause ) ;
343
- if ( TryGetRelatedFetchRequest ( joinClause , queryModel , out var fetchRequest ) )
343
+ var fetchRequest = GetRelatedFetchRequest ( queryModel , joinClause ) ;
344
+ if ( fetchRequest != null )
344
345
{
345
346
RelatedJoinFetchRequests . Add ( joinClause , fetchRequest ) ;
346
347
}
@@ -391,34 +392,28 @@ public override void VisitResultOperator(ResultOperatorBase resultOperator, Quer
391
392
ResultOperatorMap . Process ( resultOperator , this , _hqlTree ) ;
392
393
}
393
394
394
- private bool TryGetRelatedFetchRequest ( NhJoinClause joinClause , QueryModel queryModel , out FetchOneRequest fetchRequest )
395
+ private FetchOneRequest GetRelatedFetchRequest ( QueryModel queryModel , NhJoinClause joinClause )
395
396
{
396
397
if ( joinClause . Restrictions . Count > 0 ||
397
398
! ( joinClause . FromExpression is MemberExpression memberExpression ) ||
398
399
! ( memberExpression . Expression is QuerySourceReferenceExpression querySource ) ||
399
400
! IsFetchSupported ( queryModel ) )
400
401
{
401
- fetchRequest = null ;
402
- return false ;
402
+ return null ;
403
403
}
404
404
405
405
if ( querySource . ReferencedQuerySource is MainFromClause )
406
406
{
407
- fetchRequest = queryModel . ResultOperators . OfType < FetchOneRequest > ( )
408
- . FirstOrDefault ( o => o . RelationMember == memberExpression . Member ) ;
407
+ return queryModel . ResultOperators . OfType < FetchOneRequest > ( ) . FirstOrDefault ( o => o . RelationMember == memberExpression . Member ) ;
409
408
}
410
- else if ( querySource . ReferencedQuerySource is NhJoinClause parentJoinClause &&
411
- RelatedJoinFetchRequests . TryGetValue ( parentJoinClause , out var parentFetchRequest ) )
412
- {
413
- fetchRequest = parentFetchRequest . InnerFetchRequests . OfType < FetchOneRequest > ( )
414
- . FirstOrDefault ( o => o . RelationMember == memberExpression . Member ) ;
415
- }
416
- else
409
+
410
+ if ( querySource . ReferencedQuerySource is NhJoinClause parentJoinClause &&
411
+ RelatedJoinFetchRequests . TryGetValue ( parentJoinClause , out var parentFetchRequest ) )
417
412
{
418
- fetchRequest = null ;
413
+ return parentFetchRequest . InnerFetchRequests . OfType < FetchOneRequest > ( ) . FirstOrDefault ( o => o . RelationMember == memberExpression . Member ) ;
419
414
}
420
415
421
- return fetchRequest != null ;
416
+ return null ;
422
417
}
423
418
424
419
private static bool IsFetchSupported ( QueryModel queryModel )
0 commit comments