【发布时间】:2014-12-09 03:41:26
【问题描述】:
我目前正在构建报告,并且需要根据用户的选择动态地对列进行分组。现在,假设所有列的情况都是固定的,查询将如下:
var groupedInvoiceItems = invoiceItems.GroupBy(x => new { x.SalesInvoice.name, x.SalesInvoice.currencyISO, x.CatalogProduct });
这样做会根据需要返回结果,IGrouping。然后我会运行一个循环来处理必要的数据,如下所示:
foreach (var groupedInvoiceItem in groupedInvoiceItems)
{
// Perform work here
}
现在,当我尝试使用 Dynamic Linq 使分组动态化时,头痛就来了。查询如下:
var groupedInvoiceItems = invoiceItems.GroupBy("new (SalesInvoice.name, SalesInvoice.currencyISO, CatalogProduct)", "it");
问题在于它不再返回 IGrouping。因此,我的 foreach 循环不再起作用。有什么解决办法吗?我尝试将 IGrouping 强制转换为动态查询,但无济于事。急需帮助。
【问题讨论】:
-
你的代码是怎么编译的? GroupBy 需要一个 Func 并且您正在传递两个字符串!
-
@RahulSingh 这是动态 linq
标签: c# linq dynamic group-by dynamic-linq