我正在使用Entity framework
,我有
IQueryable<Doc> docs
其中Doc是适合数据库中Doc表的模型。
我想使用Pagedlist
对视图进行分页,
我必须将集合Iqueryable<Docinfo>
传递给视图,其中Docinfo
是另一种类型,并且该类型的对象已从Doc
开始初始化,
我使用它是为了避免将Doc
的所有信息传递给视图,
Docinfo
仅包含Doc
的某些属性。
这是我如何使用PagedList
IPagedList<Doc> pagedDocs = docs.ToPagedList(pageNumber, PageSize);
现在pagedDocs具有以下信息
Count: 11
FirstItemOnPage: 1
HasNextPage: true
HasPreviousPage: false
IsFirstPage: true
IsLastPage: false
LastItemOnPage: 11
PageCount: 1920
PageNumber: 1
PageSize: 11
Subset: Count = 11
TotalItemCount: 21120
现在我从数据库中仅检索了11个项目,它们都是Doc
类型。
如何从这11个对象创建Iqueryable<Docinfo>
并将其作为子集提供给pagedList?
我试图做这样的事情
IPagedList PagedList = pagedDocs.ToList().Select(m=>new DocInfo(m)).ToPagedList(pageNumber, PageSize);
但在其后PagedList
包含以下信息
Count: 11
FirstItemOnPage: 1
HasNextPage: false
HasPreviousPage: false
IsFirstPage: true
IsLastPage: true
LastItemOnPage: 11
PageCount: 1
PageNumber: 1
PageSize: 11
Subset: Count = 11
TotalItemCount: 11
如您所见,以这种方式,视图上始终只有一页,因为我丢失了有关PageCount
,TotalItemCount
等的信息。
答案 0 :(得分:0)
为什么不能不应用IPagedList而仅使用DbContext操作
IUnitOfWork<YourContext> _uOf;
var context = _uOw.Context
通过上下文,您可以随意使用所需的任何方法