Skip to content

Commit ea287bc

Browse files
committed
Remove unneeded GetType parameter
1 parent 8cc626c commit ea287bc

File tree

1 file changed

+19
-42
lines changed

1 file changed

+19
-42
lines changed

src/NHibernate/Util/ExpressionsHelper.cs

Lines changed: 19 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ private static bool TraverseMembers(
246246
if (memberPaths.Count == 0)
247247
{
248248
memberPath = currentEntityPersister != null || currentComponentType != null ? member.Path : null;
249-
mappedType = GetType(currentEntityPersister, currentType, member, sessionFactory, out _);
249+
mappedType = GetType(currentEntityPersister, currentType, member, sessionFactory);
250250
entityPersister = currentEntityPersister;
251251
component = currentComponentType;
252252
return mappedType != null;
@@ -397,67 +397,44 @@ private static IType GetType(
397397
IEntityPersister currentEntityPersister,
398398
IType currentType,
399399
MemberMetadata member,
400-
ISessionFactoryImplementor sessionFactory,
401-
out IEntityPersister persister)
400+
ISessionFactoryImplementor sessionFactory)
402401
{
403402
// Not mapped
404403
if (currentType == null)
405404
{
406-
persister = null;
407405
return null;
408406
}
409407

410-
// Collection composite elements
411-
if (currentEntityPersister == null)
408+
IEntityPersister persister;
409+
if (!member.HasIndexer || currentEntityPersister == null)
412410
{
413-
if (member.ConvertType != null)
411+
if (member.ConvertType == null)
414412
{
415-
return TryGetEntityPersister(member.ConvertType, sessionFactory, out persister)
416-
? persister.EntityMetamodel.EntityType // (Entity)q.OneToManyCompositeElement[0].Prop
417-
: TypeFactory.GetDefaultTypeFor(member.ConvertType); // (long)q.OneToManyCompositeElement[0].Prop
413+
return currentType; // q.Prop, q.OneToManyCompositeElement[0].Prop
418414
}
419415

420-
persister = null;
421-
return currentType;
416+
return TryGetEntityPersister(member.ConvertType, sessionFactory, out persister)
417+
? persister.EntityMetamodel.EntityType // (Entity)q.Prop, (Entity)q.OneToManyCompositeElement[0].Prop
418+
: TypeFactory.GetDefaultTypeFor(member.ConvertType); // (long)q.Prop, (long)q.OneToManyCompositeElement[0].Prop
422419
}
423420

424-
if (!member.HasIndexer)
421+
422+
if (!(currentType is IAssociationType associationType))
425423
{
426-
if (member.ConvertType != null)
427-
{
428-
persister = TryGetEntityPersister(member.ConvertType, sessionFactory, out var newPersister)
429-
? newPersister
430-
: currentEntityPersister;
431-
return newPersister != null
432-
? persister.EntityMetamodel.EntityType // (Entity)q.Prop
433-
: TypeFactory.GetDefaultTypeFor(member.ConvertType); // (long)q.Prop
434-
}
435-
436-
persister = currentEntityPersister;
437-
return currentType; // q.Prop
424+
// q.Prop[0]
425+
return null;
438426
}
439427

440-
// q.OneToMany[0]
441-
if (currentType is IAssociationType associationType)
428+
var queryableCollection = (IQueryableCollection) associationType.GetAssociatedJoinable(sessionFactory);
429+
if (member.ConvertType == null)
442430
{
443-
var queryableCollection = (IQueryableCollection) associationType.GetAssociatedJoinable(sessionFactory);
444-
if (member.ConvertType != null)
445-
{
446-
return TryGetEntityPersister(member.ConvertType, sessionFactory, out persister)
447-
? persister.EntityMetamodel.EntityType // (Entity)q.Prop
448-
: TypeFactory.GetDefaultTypeFor(member.ConvertType); // (long)q.Prop
449-
}
450-
451-
persister = queryableCollection.ElementType.IsEntityType
452-
? queryableCollection.ElementPersister
453-
: null;
454-
431+
// q.OneToMany[0]
455432
return queryableCollection.ElementType;
456433
}
457434

458-
// q.Prop[0]
459-
persister = null;
460-
return null;
435+
return TryGetEntityPersister(member.ConvertType, sessionFactory, out persister)
436+
? persister.EntityMetamodel.EntityType // (Entity)q.OneToMany[0]
437+
: TypeFactory.GetDefaultTypeFor(member.ConvertType); // (long)q.OneToMany[0]
461438
}
462439

463440
private class MemberMetadataExtractor : NhExpressionVisitor

0 commit comments

Comments
 (0)