我正在尝试使用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设备上。
它有效,但有点慢......任何人都有更好的想法吗?