MVC初学者。在实现另一篇文章中的解决方案时,我现在遇到了另一个问题。我明白问题的要旨,但不知道如何解决它。
我已经改变了一种类型:
ViewModel.Lots = from x in (db.Subdivisions.SelectMany(sd => sd.Lots))
group x by x.Num_of_steps == 0 ? 3 : x.Num_of_steps < 115 ? 1 : 2 into g
orderby g.Key
select g.OrderBy(g1 => g1.LotName);我现在得到了这个错误:
不能隐式地将类型'System.Linq.IQueryable>‘转换为'System.Collections.Generic.IEnumerable'.存在显式转换(是否缺少强制转换?)
在阅读了几篇文章之后,我做了一些修改,比如:
select g.OrderBy(g1 => g1.LotName).AsQueryable().ToList()在这种情况下,消息更改为:
不能隐式地将类型'System.Linq.IQueryable>‘转换为'System.Collections.Generic.IEnumerable'.存在显式转换(是否缺少强制转换?)
有人能帮上忙吗?解释他们为什么这么做,他们在哪里做的,这样我才能理解。谢谢
发布于 2014-04-03 01:42:35
ViewModel.Lots = (from x in (db.Subdivisions.SelectMany(sd => sd.Lots))
group x by x.Num_of_steps == 0 ? 3 : x.Num_of_steps < 115 ? 1 : 2 into g
orderby g.Key
select g.OrderBy(g1 => g1.LotName).ToList()).SelectMany(x => x).ToList();您需要得到一个IEnumerable<Lot>。g.OrderBy(g1 => g1.LotName)首先为每个group.So返回一个IOrderedEnumerable<MVCBSV.Models.Lot>,您应该使用SelectMany来平化您的结果,然后使用ToList.The最后一个ToList在这种情况下可能是不必要的。
https://stackoverflow.com/questions/22826267
复制相似问题