C# Linq-SQL将参数传递到GroupBy()中
使用linq查询,如何将参数传递到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值。有什么想法吗 干杯一般来说,您需
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
,在有条件地应用分组之前包含任何连接、筛选和排序。