C# Linq-SQL将参数传递到GroupBy()中

C# Linq-SQL将参数传递到GroupBy()中,c#,sql,linq,C#,Sql,Linq,使用linq查询,如何将参数传递到groupby函数中?根据用户选择,它将以不同方式分组 var query = (from to in OrderQuery group to by to.FromDateUtc into groupedDate let grouped = groupedDate.GroupBy(o => o.Name) 我想传递不同的groupby值。有什么想法吗 干杯一般来说,您需

使用linq查询,如何将参数传递到groupby函数中?根据用户选择,它将以不同方式分组

 var query = (from to in OrderQuery
                     group to by to.FromDateUtc into groupedDate
                     let grouped = groupedDate.GroupBy(o => o.Name)
我想传递不同的groupby值。有什么想法吗


干杯

一般来说,您需要不同的查询。基于用户选择建立不同的
WHERE
WHERE(…)
子句也是如此:

var query = OrderQuery;
if (userSelection == "GroupByName") {
    query = from to in query
            group to by to.FromDateUtc into groupedDate
            let grouped = groupedDate.GroupBy(o => o.Name);
}
else if (userSelection == "GroupBySomethingElse") {
    query = from to in query
            group to by to.FromDateUtc into groupedDate
            let grouped = groupedDate.GroupBy(o => o.SomethingElse);
}

在将分组应用于
query
之前,您需要准备尽可能多的公共逻辑。因为LINQ使用延迟执行,所以在枚举结果之前,您可以根据需要修改
query
,这样就不会导致性能下降。

如果您尝试这样做

SELECT * FROM <TableName> GROUP BY <Column1>,<Column2>
从分组依据中选择*,
然后,看看这篇文章


您是否正在尝试执行类似于从群组中选择*的操作,?嗯。。有意思。。这只是我查询的10%。似乎我需要复制和粘贴大量内容:(@overule好吧,希望不是。您需要复制和粘贴的唯一部分是那些处理分组方式差异的部分。正如我提到的,您应该设置
query
,在有条件地应用分组之前包含任何连接、筛选和排序。