动态GroupBy - linq.Dynamic

时间:2012-03-25 21:33:43

标签: asp.net-mvc linq dynamic

我正在尝试使用MVC创建拖放过滤器/分组控件。我有所有的拖放工作正常。但是我似乎无法让GroupBy以我想要的方式工作。

目前我拥有的是这样的。

IQueryable<Equipment> lst = doSearch("EquipmentType_ID", "Manufacturer_ID");
var news = lst.GroupBy("idLocation.Name", "ID");

当它返回时,它会返回而不会引用<Equipment>但是当我单步执行dynamic.cs代码时,它似乎始终引用<Equipment>

如果我做这样的事情就可以了。

var news = lst.GroupBy(z => z.idLocation.Name);

但是我需要根据用户选择的内容动态生成,所以我必须使用linq.Dynamic GroupBy

然后我将列表作为局部视图返回并循环遍历模型并显示结果。

那么,如何从linq.dynamic返回强类型列表?


这就是我目前正在做的事情。它有效,但我希望能够不做任何foreach循环或类似的东西。

List<ZITS_DAL.Equipment> lst = doSearch(equipmentType_ID, manufacturer_ID)

var news = lst.AsQueryable().GroupBy(headers, "it");
ZITS_BO.ViewModels.vmDragControl vm = new ViewModels.vmDragControl();
vm.lst =  new List<IGrouping<string, ZITS_DAL.Equipment>>();
            foreach (IGrouping<string,ZITS_DAL.Equipment> t in news)
            {
               vm.lst.Add(t);
            }

vmDragControl视图模型如下。

 List<IGrouping<string, ZITS_DAL.Equipment>> lst

然后在我的模型中我有2个foreach循环。一组在IGroupings列表中,另一组在Igrouping设备上。

它有效,但有点慢......任何人都有更好的想法吗?

0 个答案:

没有答案