将大型实体列表映射到ViewModel的PagedList

Fil*_*Rot 5 asp.net-mvc pagedlist viewmodel

如何在基于ASP MVC和ViewModels的Web应用程序中使用PagedList.

我想制作Viewmodels的PagedList,所以首先我要将实体映射到Viewmodels.

当我获取一个大型列表时,它非常慢,因为首先在构建PagedList之前执行映射(因此获取整个实体列表).

解决这个问题的最佳方法是什么?

IEnumerable<InvoiceData> invoiceData = dataService.GetInvoiceData(locationId);

Mapper.CreateMap<InvoiceData, ViewModelInvoiceData>();
IEnumerable<ViewModelInvoiceData> vmInvoiceData = Mapper.Map<IEnumerable<InvoiceData>, IEnumerable<ViewModelInvoiceData>>(invoiceData);

IPagedList<InvoiceDataViewModel> pagedListVMInvoiceData = vmInvoiceData.ToPagedList(page, pageSize);
Run Code Online (Sandbox Code Playgroud)

(我也使用映射框架,但它与自定义映射器类的问题当然相同)

Dmy*_*nko 1

为什么不在服务器上分页数据?然后像troygoode / PagedList的示例 2 中那样创建手动寻呼机?