项目到<ViewModel>自动映射器版本问题



我对Automapper v10.1.1的新版本有问题。在最旧的版本中,有ProjectTo方法。因此,目前,我的问题出现在IActionResult索引的一个控制器中。

错误在postQuery,错误为错误CS1501方法"ProjectTo"没有重载,需要0个参数

public IActionResult Index(PaginationVM pagination, PostFilterVM postFilter)
{
if (this.HasAlert)
{
this.SetAlertModel();
}
//here is the error
var postsQuery = this.FilterPosts(postFilter, this.salePostService.GetAll().ProjectTo<PostVM>());
var paginatedPosts = this.PaginateList<PostVM>(pagination, postsQuery).ToList();
foreach (var post in paginatedPosts)
{
post.Sneaker.PosterImageRelativeLink = FileManager.GetRelativeFilePath(post.Sneaker.PosterImageLink);
post.Sneaker.OverallRating = post.Sneaker.Ratings.Any() ? post.Sneaker.Ratings.Average(s => s.Rating.Score) : 0;
}
int totalPages = this.GetTotalPages(pagination.PageSize, postsQuery.Count());
PostListVM postListViewModel = new PostListVM
{
Posts = paginatedPosts,
NextPage = pagination.Page < totalPages ? pagination.Page + 1 : pagination.Page,
PreviousPage = pagination.Page > 1 ? pagination.Page - 1 : pagination.Page,
CurrentPage = pagination.Page,
TotalPages = totalPages,
ShowPagination = totalPages > 1,
};
this.LoadListSneakersDropdowns(postFilter);
return this.View(postListViewModel);
}

如果你能帮我解决这个问题,我将不胜感激,因为我阅读了所有的文档,仍然找不到正确的方法来解决它。。。提前感谢

这是一个正在使用ProjectTo的生产代码。

public async Task<GetDocumentsResponse> Handle(GetDocumentsRequest request, CancellationToken cancellationToken)
{
//// Omitted code
var query = _databaseContext.Documents
.Where(x =>
x.ScenarioId== request.ScenarioId
&& x.IsMandatory);
var result = _mapper.ProjectTo<Document>(query).ToList();
return new GetDocumentsResponse
{
Documents = result,
};
}

我建议你注入或新建一个mapper实例,然后以的方式投影结果

相关内容

最新更新