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

本文关键字:GroupBy 参数传递 SQL Linq | 更新日期: 2023-09-27 18:32:04

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

 var query = (from to in OrderQuery
                     group to by to.FromDateUtc into groupedDate
                     let grouped = groupedDate.GroupBy(o => o.Name)

我想传递不同的分组值。知道吗?

干杯

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

一般来说,您需要不同的查询。 根据用户选择构建不同的WHEREWhere(...)子句也是如此:

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>

然后,看看这篇文章

按多列分组