IQueryable不包含ToList()

Dyl*_*ski 2 c# linq

我的视图模型是IEnumerable<SomeModel>这样的,因此在我的控制器中,我这样做:

[HttpGet]
public PartialViewResult show() {
    IQueryable query= from data in entity.dbCtxt
        select data;
    return PartialView("show", query.ToList());
}
Run Code Online (Sandbox Code Playgroud)

原来IQueryable不包含ToList()... 的定义

public interface IQueryable : IEnumerable{
     Type ElementType { get; }
     Expression Expression { get; }
     IQueryProvider Provider { get; }
}
Run Code Online (Sandbox Code Playgroud)

如何投放IQueryable到列表中?

oct*_*ccl 6

因为ToList是的扩展方法IQueryable<T>,所以不是IQueryable。如果那是您的查询,则只需执行以下操作:

public PartialViewResult show() {

        return PartialView("show", dbCtxt.YourDbSet.ToList());
}
Run Code Online (Sandbox Code Playgroud)

DbSet<T>类继承自IQueryable<T>,因此如果您想获取该表的所有行,则可以ToList直接从中调用DbSet