将大量实体映射到ViewModels的PageDlist



如何在基于ASP MVC的Web应用程序中使用PageDlist与ViewModels结合使用。

我想制作一个viewmodels的patageList,因此首先我必须将实体映射到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);

(我也使用映射框架,但自定义映射类别的问题当然是同样的问题)

为什么您没有在服务器上打印数据?之后,在Troygoode/pagedlist中创建类似于示例2中的手动打印机?

我也有同样的问题。我通过使用IQuery -able接口而不是IEnumerable

来加快结果(它们仍然不那么快,但速度更快)

更改此内容:

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

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

相关内容

  • 没有找到相关文章

最新更新