使用linq查询,如何将参数传递给groupby函数?取决于用户选择,它将以不同的方式分组
var query = (from to in OrderQuery
group to by to.FromDateUtc into groupedDate
let grouped = groupedDate.GroupBy(o => o.Name)
我想传递不同的groupby值。有什么想法吗?
干杯
答案 0 :(得分:2)
一般来说,您需要不同的查询。根据用户选择构建不同的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
,并且不会导致性能损失。
答案 1 :(得分:0)
如果你想做这样的事情
SELECT * FROM <TableName> GROUP BY <Column1>,<Column2>
然后,看一下这篇文章