diff --git a/PoweredSoft.DynamicLinq/Extensions/QueryableExtensions.cs b/PoweredSoft.DynamicLinq/Extensions/QueryableExtensions.cs index d905610..1780a6e 100644 --- a/PoweredSoft.DynamicLinq/Extensions/QueryableExtensions.cs +++ b/PoweredSoft.DynamicLinq/Extensions/QueryableExtensions.cs @@ -145,12 +145,17 @@ namespace PoweredSoft.DynamicLinq return ret; } - private static MethodInfo _internalCount = typeof(QueryableExtensions).GetMethod(nameof(QueryableExtensions._internalCount), BindingFlags.Static | BindingFlags.NonPublic); - private static int InternalCount(IQueryable q) => q.Count(); + private static MethodInfo _internalCount = typeof(QueryableExtensions).GetMethod(nameof(QueryableExtensions.InternalCount), BindingFlags.Static | BindingFlags.NonPublic); + private static int InternalCount(IQueryable q) => System.Linq.Queryable.Count(q); public static int Count(this IQueryable query) => (int)_internalCount.MakeGenericMethod(query.ElementType).Invoke(null, new object[] {query}); - private static MethodInfo _internalLongCount = typeof(QueryableExtensions).GetMethod(nameof(QueryableExtensions._internalLongCount), BindingFlags.Static | BindingFlags.NonPublic); - private static long InternalLongCount(IQueryable q) => q.LongCount(); - public static long LongCount(this IQueryable query) => (int)_internalLongCount.MakeGenericMethod(query.ElementType).Invoke(null, new object[] { query }); + private static MethodInfo _internalLongCount = typeof(QueryableExtensions).GetMethod(nameof(QueryableExtensions.InternalLongCount), BindingFlags.Static | BindingFlags.NonPublic); + private static long InternalLongCount(IQueryable q) => System.Linq.Queryable.LongCount(q); + public static long LongCount(this IQueryable query) + { + var method =_internalLongCount.MakeGenericMethod(query.ElementType); + var result = method.Invoke(null, new object[] {query}); + return (long) result; + } } }