diff --git a/PoweredSoft.DynamicLinq/Helpers/QueryableHelpers.cs b/PoweredSoft.DynamicLinq/Helpers/QueryableHelpers.cs
index e439333..57fac38 100644
--- a/PoweredSoft.DynamicLinq/Helpers/QueryableHelpers.cs
+++ b/PoweredSoft.DynamicLinq/Helpers/QueryableHelpers.cs
@@ -77,7 +77,7 @@ namespace PoweredSoft.DynamicLinq.Helpers
return ret;
}
- internal static IQueryable GroupBy(IQueryable query, Type type, List<(string path, string propertyName)> parts)
+ public static IQueryable GroupBy(IQueryable query, Type type, List<(string path, string propertyName)> parts)
{
// EXPRESSION
var parameter = Expression.Parameter(type, "t");
@@ -95,6 +95,10 @@ namespace PoweredSoft.DynamicLinq.Helpers
var anonymousType = TypeHelpers.CreateSimpleAnonymousType(fields);
+ var constructorTypes = fields.Select(t => t.type).ToArray();
+ var constructor = anonymousType.GetConstructor(constructorTypes);
+ var newExpression = Expression.New(constructor, partExpressions);
+ var genericMethod = Constants.GroupByMethod.MakeGenericMethod(type, anonymousType);
return query;
}
diff --git a/PoweredSoft.DynamicLinq/Helpers/TypeHelpers.cs b/PoweredSoft.DynamicLinq/Helpers/TypeHelpers.cs
index f2a5a18..2a7bb2a 100644
--- a/PoweredSoft.DynamicLinq/Helpers/TypeHelpers.cs
+++ b/PoweredSoft.DynamicLinq/Helpers/TypeHelpers.cs
@@ -35,6 +35,12 @@ namespace PoweredSoft.DynamicLinq.Helpers
return ret;
}
+ ///
+ /// Use this to create anonymous type concstructor for LINQ queries :)
+ /// https://stackoverflow.com/questions/6879279/using-typebuilder-to-create-a-pass-through-constructor-for-the-base-class
+ ///
+ ///
+ ///
internal static TypeInfo CreateSimpleAnonymousType(List<(Type type, string name)> fields)
{
// DYNAMIC TYPE CREATION