Skip to content

Commit 0132e4c

Browse files
committed
Code review changes
1 parent f194b11 commit 0132e4c

File tree

3 files changed

+29
-3
lines changed

3 files changed

+29
-3
lines changed

src/NHibernate/Linq/QuerySourceNamer.cs

+4-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ public class QuerySourceNamer
1616

1717
public void Add(IQuerySource querySource)
1818
{
19-
Add(querySource, CreateUniqueName(querySource.ItemName));
19+
if (_map.ContainsKey(querySource))
20+
return;
21+
22+
_map.Add(querySource, CreateUniqueName(querySource.ItemName));
2023
}
2124

2225
internal void Add(IQuerySource querySource, string name)

src/NHibernate/Util/ReflectHelper.cs

+13
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,19 @@ internal static MethodInfo FastGetMethodDefinition<T1, T2, T3, T4, TResult>(Syst
180180
return method.IsGenericMethod ? method.GetGenericMethodDefinition() : method;
181181
}
182182

183+
/// <summary> Get a <see cref="MethodInfo"/> from a method group </summary>
184+
/// <param name="func">A method group</param>
185+
/// <param name="a1">A dummy parameter</param>
186+
/// <param name="a2">A dummy parameter</param>
187+
/// <param name="a3">A dummy parameter</param>
188+
/// <param name="a4">A dummy parameter</param>
189+
/// <param name="a5">A dummy parameter</param>
190+
internal static MethodInfo FastGetMethodDefinition<T1, T2, T3, T4, T5, TResult>(System.Func<T1, T2, T3, T4, T5, TResult> func, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
191+
{
192+
var method = func.Method;
193+
return method.IsGenericMethod ? method.GetGenericMethodDefinition() : method;
194+
}
195+
183196
/// <summary>
184197
/// Get the <see cref="MethodInfo"/> for a public overload of a given method if the method does not match
185198
/// given parameter types, otherwise directly yield the given method.

src/NHibernate/Util/ReflectionCache.cs

+12-2
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,20 @@ internal static class QueryableMethods
6969
internal static readonly MethodInfo SelectDefinition =
7070
ReflectHelper.FastGetMethodDefinition(Queryable.Select, default(IQueryable<object>), default(Expression<Func<object, object>>));
7171
internal static readonly MethodInfo SelectManyDefinition =
72-
ReflectHelper.GetMethodDefinition(() => Queryable.SelectMany<object, object, object>(null, (Expression<Func<object, IEnumerable<object>>>) null, null));
72+
ReflectHelper.FastGetMethodDefinition(
73+
Queryable.SelectMany,
74+
default(IQueryable<object>),
75+
default(Expression<Func<object, IEnumerable<object>>>),
76+
default(Expression<Func<object, object, object>>));
7377

7478
internal static readonly MethodInfo GroupJoinDefinition =
75-
ReflectHelper.GetMethodDefinition(() => Queryable.GroupJoin<object, object, object, object>(null, null, null, null, null));
79+
ReflectHelper.FastGetMethodDefinition(
80+
Queryable.GroupJoin,
81+
default(IQueryable<object>),
82+
default(IEnumerable<object>),
83+
default(Expression<Func<object, int>>),
84+
default(Expression<Func<object, int>>),
85+
default(Expression<Func<object, IEnumerable<object>, object>>));
7686

7787
internal static readonly MethodInfo CountDefinition =
7888
ReflectHelper.FastGetMethodDefinition(Queryable.Count, default(IQueryable<object>));

0 commit comments

Comments
 (0)