C# 如何将AutoMapper与页面列表一起使用?
我让automapper工作,但后来添加到页面列表中,现在它不工作了。怎么 我是否告诉它只将RfReport映射到RfReportModel,但保留PagedList参数 AutoMapper.AutoMappingException:“错误映射类型。” ArgumentException:PWDRS.Core.Helpers.PagedList`1[PWDRS.Application.Models.RfReportModel]需要具有具有0个参数或仅可选参数的构造函数C# 如何将AutoMapper与页面列表一起使用?,c#,pagination,automapper,C#,Pagination,Automapper,我让automapper工作,但后来添加到页面列表中,现在它不工作了。怎么 我是否告诉它只将RfReport映射到RfReportModel,但保留PagedList参数 AutoMapper.AutoMappingException:“错误映射类型。” ArgumentException:PWDRS.Core.Helpers.PagedList`1[PWDRS.Application.Models.RfReportModel]需要具有具有0个参数或仅可选参数的构造函数 public Pag
public PagedList<RfReportModel> GetRfReportListPaged(RfReportParameters rfReportParameters)
{
PagedList<RfReport> rfReports = _rfReportRepository.GetRfReportListPaged(rfReportParameters);
PagedList<RfReportModel> mapped = _mapper.Map<PagedList<RfReportModel>>(rfReports);
return mapped;
}
public class PagedList<T> : List<T>
{
public int CurrentPage { get; private set; }
public int TotalPages { get; private set; }
public int PageSize { get; private set; }
public int TotalCount { get; private set; }
public bool HasPrevious => CurrentPage > 1;
public bool HasNext => CurrentPage < TotalPages;
public PagedList(List<T> items, int count, int pageNumber, int pageSize)
{
TotalCount = count;
PageSize = pageSize;
CurrentPage = pageNumber;
TotalPages = (int)Math.Ceiling(count / (double)pageSize);
AddRange(items);
}
public static PagedList<T> ToPagedList(IEnumerable<T> source, int pageNumber, int pageSize)
{
var count = source.Count();
var items = source.Skip((pageNumber - 1) * pageSize).Take(pageSize).ToList();
return new PagedList<T>(items, count, pageNumber, pageSize);
}
}
public PagedList GetRfReportListPaged(RfReportParameters RfReportParameters)
{
PagedList rfReports=\u rfReportRepository.GetRfReportListPaged(rfReportParameters);
PagedList mapped=\u mapper.Map(rfReports);
返回映射;
}
公共类页面列表:列表
{
public int CurrentPage{get;private set;}
公共整型TotalPages{get;private set;}
public int PageSize{get;private set;}
公共整数TotalCount{get;private set;}
公共bool HasPrevious=>CurrentPage>1;
公共bool HasNext=>CurrentPage
编辑1:我不知道如何在automapper中实现它,但我意识到我可以像这样轻松地重新创建页面列表,从而有效地完成同样的事情
public PagedList<RfReportModel> GetRfReportListPaged(RfReportParameters rfReportParameters)
{
PagedList<RfReport> rfReports = _rfReportRepository.GetRfReportListPaged(rfReportParameters);
IEnumerable<RfReportModel> mapped = _mapper.Map<IEnumerable<RfReportModel>>(rfReports);
PagedList<RfReportModel> plMapped = PagedList<RfReportModel>.ToPagedList(
mapped,
rfReportParameters.PageNumber,
rfReportParameters.PageSize);
return plMapped;
}
public PagedList GetRfReportListPaged(RfReportParameters RfReportParameters)
{
PagedList rfReports=\u rfReportRepository.GetRfReportListPaged(rfReportParameters);
IEnumerable mapped=\u mapper.Map(rfReports);
PagedList plMapped=PagedList.ToPagedList(
映射,
rfReportParameters.PageNumber,
rfReportParameters.PageSize);
返回plMapped;
}
这是否回答了您的问题?