C# ';没有通用方法';GroupBy';关于类型';System.Linq.Queryable';与提供的类型参数和参数兼容

C# ';没有通用方法';GroupBy';关于类型';System.Linq.Queryable';与提供的类型参数和参数兼容,c#,linq,C#,Linq,我尝试在SelectMany之后动态使用反射来执行GroupBy: var origType = typeof(CustomerCases); var parameter = Expression.Parameter(origType, "x"); var propExpr = Expression.Property(par, "Customer"); var firstGenType = typeof(Customer); var result

我尝试在SelectMany之后动态使用反射来执行GroupBy:

var origType = typeof(CustomerCases);     
var parameter = Expression.Parameter(origType, "x");
var propExpr = Expression.Property(par, "Customer");
var firstGenType = typeof(Customer);
var resultType = typeof(IGrouping<,>).MakeGenericType(new [] {firstGenType, origType});

var lambda = Expression.Lambda(Expression.Convert(propExpr, resultType), parameter);

var groupbyExpression = Expression.Call(
                typeof(Queryable), 
                nameof(Queryable.GroupBy), 
                new [] { origType, firstGenType },
                querySelectMany.Expression, 
                lambda);
var origType=typeof(客户案例);
var参数=表达式参数(origType,“x”);
var propExpr=Expression.Property(par,“客户”);
var firstGenType=类型(客户);
var resultType=typeof(IGrouping).MakeGenericType(new[]{firstGenType,origType});
var lambda=Expression.lambda(Expression.Convert(propExpr,resultType),参数);
var groupbyExpression=Expression.Call(
类型(可查询),
名称(可查询的GroupBy),
新[]{origType,firstGenType},
querySelectMany.Expression,
lambda);
但是,当尝试设置groupbyExpression时,它会引发异常:

System.Linq.Expressions.dll中发生类型为“System.InvalidOperationException”的异常,但未在用户代码中处理。类型为“System.Linq.Queryable”的系统上的“No generic method”GroupBy“与提供的类型参数和参数兼容。如果方法是非泛型的,则不应提供类型参数。'


有什么想法吗?

什么类型的
查询selectmany.Expression
?你的
lambda
对我来说有点奇怪。我有一些想法,但你以后想用这个分组做什么?选择计数、聚合?lambda的结果如何进行分组?这是调用
GroupBy
的结果。您的代码有其他错误(例如
par
参数
)。请修复它们。为什么要尝试创建一个通用分组依据?使用一个普通的groupby-它更适合维护朋友。泛型group by是危险的,因为它们需要计算表达式树。