我的视图模型是IEnumerable<SomeModel>
所以在我的控制器中我这样做:
[HttpGet]
public PartialViewResult show() {
IQueryable query= from data in entity.dbCtxt
select data;
return PartialView("show", query.ToList());
}
结果IQueryable
不包含ToList()
...
public interface IQueryable : IEnumerable{
Type ElementType { get; }
Expression Expression { get; }
IQueryProvider Provider { get; }
}
如何将IQueryable
投射到列表中?
答案 0 :(得分:4)
因为ToList
是IQueryable<T>
的扩展方法,而不是IQueryable
。如果这是您的查询,您可以简单地执行此操作:
public PartialViewResult show() {
return PartialView("show", dbCtxt.YourDbSet.ToList());
}
DbSet<T>
类继承自IQueryable<T>
,因此,如果您想要获取该表的所有行,则可以直接从ToList
调用DbSet
。
答案 1 :(得分:2)
不确定为什么你需要它Iqueryable
,但你可以这样做,因为select
将返回IEnumerable<T>
,你可以在{/ 1}上调用ToList()
>
var query = from data in entity.dbCtxt
select data;
return PartialView("show", query.ToList());